1 %define script_dir %{_sbindir}
2 # Vasum Server's user info - it should already exist in the system
3 %define vsm_user security-containers
4 # The group that has read and write access to /dev/input/event* devices.
5 # It may vary between platforms.
6 %define input_event_group input
7 # The group has access to /dev/loop* devices.
8 %define disk_group disk
9 # The group that has write access to /dev/tty* devices.
16 Source0: %{name}-%{version}.tar.gz
19 Summary: Daemon for managing zones
21 BuildRequires: boost-devel
22 BuildRequires: libjson-devel >= 0.10
23 BuildRequires: lxc-devel
24 BuildRequires: pkgconfig(glib-2.0)
25 BuildRequires: pkgconfig(sqlite3)
26 Requires(post): libcap-tools
28 Requires: libjson >= 0.10
29 Obsoletes: vasum-daemon < 1:0
32 This package provides a daemon used to manage zones - start, stop and switch
33 between them. A process from inside a zone can request a switch of context
34 (display, input devices) to the other zone.
37 %manifest packaging/vasum.manifest
38 %defattr(644,root,root,755)
39 %attr(755,root,root) %{_bindir}/vasum-server
42 %dir /etc/vasum/templates
43 %config /etc/vasum/daemon.conf
44 %attr(755,root,root) /etc/vasum/templates/*.sh
45 %config /etc/vasum/templates/*.conf
46 %{_unitdir}/vasum.service
47 %{_unitdir}/vasum.socket
48 %{_unitdir}/multi-user.target.wants/vasum.service
49 %config /etc/dbus-1/system.d/org.tizen.vasum.host.conf
50 %dir %{_datadir}/.zones
56 %{!?build_type:%define build_type "RELEASE"}
58 %if %{build_type} == "DEBUG" || %{build_type} == "PROFILING"
59 CFLAGS="$CFLAGS -Wp,-U_FORTIFY_SOURCE"
60 CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
63 %cmake . -DVERSION=%{version} \
64 -DCMAKE_BUILD_TYPE=%{build_type} \
65 -DSCRIPT_INSTALL_DIR=%{script_dir} \
66 -DSYSTEMD_UNIT_DIR=%{_unitdir} \
67 -DDATA_DIR=%{_datadir} \
68 -DPYTHON_SITELIB=%{python_sitelib} \
69 -DVASUM_USER=%{vsm_user} \
70 -DINPUT_EVENT_GROUP=%{input_event_group} \
71 -DDISK_GROUP=%{disk_group} \
72 -DTTY_GROUP=%{tty_group} \
73 -DWITHOUT_DBUS=%{?without_dbus}
74 make -k %{?jobs:-j%jobs}
78 mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
79 ln -s ../vasum.service %{buildroot}/%{_unitdir}/multi-user.target.wants/vasum.service
80 mkdir -p %{buildroot}/%{_datadir}/.zones
86 # Refresh systemd services list after installation
88 systemctl daemon-reload || :
90 # set needed caps on the binary to allow restart without loosing them
91 setcap CAP_SYS_ADMIN,CAP_MAC_OVERRIDE,CAP_SYS_TTY_CONFIG+ei %{_bindir}/vasum-server
94 # Stop the service before uninstall
96 systemctl stop vasum.service || :
100 # Refresh systemd services list after uninstall/upgrade
101 systemctl daemon-reload || :
102 if [ $1 -ge 1 ]; then
103 # TODO: at this point an appropriate notification should show up
104 eval `systemctl show vasum --property=MainPID`
105 if [ -n "$MainPID" -a "$MainPID" != "0" ]; then
108 echo "Vasum updated. Reboot is required for the changes to take effect..."
110 echo "Vasum removed. Reboot is required for the changes to take effect..."
113 ## Client Package ##############################################################
115 Summary: Vasum Client
116 Group: Development/Libraries
117 Requires: vasum = %{epoch}:%{version}-%{release}
118 Obsoletes: vasum < 1:0
119 Requires(post): /sbin/ldconfig
120 Requires(postun): /sbin/ldconfig
123 Library interface to the vasum daemon
125 %post -n vasum-client -p /sbin/ldconfig
127 %postun -n vasum-client -p /sbin/ldconfig
130 %manifest packaging/libvasum-client.manifest
131 %defattr(644,root,root,755)
132 %attr(755,root,root) %{_libdir}/libvasum-client.so.%{version}
133 %{_libdir}/libvasum-client.so.0
134 %attr(755,root,root) %{_libdir}/libvasum.so.%{version}
135 %{_libdir}/libvasum.so.0
138 ## Devel Package ###############################################################
140 Summary: Vasum Client Devel
141 Group: Development/Libraries
142 Requires: vasum = %{epoch}:%{version}-%{release}
143 Requires: vasum-client = %{epoch}:%{version}-%{release}
146 Development package including the header files for the client library
149 %manifest packaging/vasum.manifest
150 %defattr(644,root,root,755)
151 %{_libdir}/libvasum-client.so
152 %{_libdir}/libvasum.so
154 %{_libdir}/pkgconfig/vasum-client.pc
155 %{_libdir}/pkgconfig/vasum.pc
158 ## Zone Support Package ###################################################
159 %package zone-support
160 Summary: Vasum Support
161 Group: Security/Other
163 %description zone-support
164 Zones support installed inside every zone.
167 %manifest packaging/vasum-zone-support.manifest
168 %defattr(644,root,root,755)
169 %config /etc/dbus-1/system.d/org.tizen.vasum.zone.conf
172 ## Zone Daemon Package ####################################################
174 Summary: Vasum Zones Daemon
175 Group: Security/Other
176 Requires: vasum-zone-support = %{epoch}:%{version}-%{release}
178 %description zone-daemon
179 Daemon running inside every zone.
182 %manifest packaging/vasum-zone-daemon.manifest
183 %defattr(644,root,root,755)
184 %attr(755,root,root) %{_bindir}/vasum-zone-daemon
185 %config /etc/dbus-1/system.d/org.tizen.vasum.zone.daemon.conf
188 ## Command Line Interface ######################################################
190 Summary: Vasum Command Line Interface
191 Group: Security/Other
192 Requires: vasum-client = %{epoch}:%{version}-%{release}
195 Command Line Interface for vasum.
198 %defattr(644,root,root,755)
199 %attr(755,root,root) %{_bindir}/vasum-cli
201 %package cli-completion
202 Summary: Vasum Command Line Interface bash completion
203 Group: Security/Other
204 Requires: vasum-cli = %{epoch}:%{version}-%{release}
205 #Requires: bash-completion
207 %description cli-completion
208 Command Line Interface bash completion for vasum.
210 %files cli-completion
211 %attr(755,root,root) %{_sysconfdir}/bash_completion.d/vasum-cli-completion.sh
213 ## Test Package ################################################################
216 Group: Development/Libraries
217 Requires: vasum = %{epoch}:%{version}-%{release}
218 Requires: vasum-client = %{epoch}:%{version}-%{release}
224 Unit tests for both: server and client and integration tests.
227 systemctl daemon-reload
228 systemctl enable vasum-socket-test.socket
229 systemctl start vasum-socket-test.socket
232 systemctl stop vasum-socket-test.socket
233 systemctl disable vasum-socket-test.socket
236 systemctl daemon-reload
239 %manifest packaging/vasum-server-tests.manifest
240 %defattr(644,root,root,755)
241 %attr(755,root,root) %{_bindir}/vasum-server-unit-tests
242 %attr(755,root,root) %{_bindir}/vasum-socket-test
243 %attr(755,root,root) %{script_dir}/vsm_all_tests.py
244 %attr(755,root,root) %{script_dir}/vsm_int_tests.py
245 %attr(755,root,root) %{script_dir}/vsm_launch_test.py
246 %{script_dir}/vsm_test_parser.py
247 %config /etc/vasum/tests/*.conf
248 %config /etc/vasum/tests/dbus/*.conf
249 %config /etc/vasum/tests/provision/*.conf
250 %config /etc/vasum/tests/templates/*.conf
251 %attr(755,root,root) /etc/vasum/tests/templates/*.sh
252 %config /etc/vasum/tests/utils/*.txt
253 %{python_sitelib}/vsm_integration_tests
254 %config /etc/dbus-1/system.d/org.tizen.vasum.tests.conf
255 %{_unitdir}/vasum-socket-test.socket
256 %{_unitdir}/vasum-socket-test.service
258 ## libLogger Package ###########################################################
259 %package -n libLogger
260 Summary: Logger library
261 Group: Security/Other
262 BuildRequires: pkgconfig(libsystemd-journal)
263 Requires(post): /sbin/ldconfig
264 Requires(postun): /sbin/ldconfig
266 %description -n libLogger
267 The package provides libLogger library.
269 %post -n libLogger -p /sbin/ldconfig
271 %postun -n libLogger -p /sbin/ldconfig
274 %defattr(644,root,root,755)
275 %{_libdir}/libLogger.so.0
276 %attr(755,root,root) %{_libdir}/libLogger.so.%{version}
278 %package -n libLogger-devel
279 Summary: Development logger library
280 Group: Development/Libraries
281 Requires: libLogger = %{epoch}:%{version}-%{release}
283 %description -n libLogger-devel
284 The package provides libLogger development tools and libs.
286 %files -n libLogger-devel
287 %defattr(644,root,root,755)
288 %{_libdir}/libLogger.so
289 %{_includedir}/vasum-tools/logger
290 %{_libdir}/pkgconfig/libLogger.pc
292 ## libSimpleDbus Package #######################################################
293 %package -n libSimpleDbus
294 Summary: Simple dbus library
295 Group: Security/Other
296 Requires(post): /sbin/ldconfig
297 Requires(postun): /sbin/ldconfig
299 %description -n libSimpleDbus
300 The package provides libSimpleDbus library.
302 %post -n libSimpleDbus -p /sbin/ldconfig
304 %postun -n libSimpleDbus -p /sbin/ldconfig
306 %files -n libSimpleDbus
307 %defattr(644,root,root,755)
308 %{_libdir}/libSimpleDbus.so.0
309 %attr(755,root,root) %{_libdir}/libSimpleDbus.so.%{version}
311 %package -n libSimpleDbus-devel
312 Summary: Development Simple dbus library
313 Group: Development/Libraries
314 Requires: libSimpleDbus = %{epoch}:%{version}-%{release}
315 Requires: pkgconfig(libLogger)
317 %description -n libSimpleDbus-devel
318 The package provides libSimpleDbus development tools and libs.
320 %files -n libSimpleDbus-devel
321 %defattr(644,root,root,755)
322 %{_libdir}/libSimpleDbus.so
323 %{_includedir}/vasum-tools/dbus
324 %{_libdir}/pkgconfig/libSimpleDbus.pc
326 ## libConfig Package ##########################################################
327 %package -n libConfig
328 Summary: Config library
329 Group: Security/Other
330 Requires(post): /sbin/ldconfig
331 Requires(postun): /sbin/ldconfig
333 %description -n libConfig
334 The package provides libConfig library.
336 %post -n libConfig -p /sbin/ldconfig
338 %postun -n libConfig -p /sbin/ldconfig
341 %defattr(644,root,root,755)
342 %{_libdir}/libConfig.so.0
343 %attr(755,root,root) %{_libdir}/libConfig.so.%{version}
345 %package -n libConfig-devel
346 Summary: Development Config library
347 Group: Development/Libraries
348 Requires: libConfig = %{epoch}:%{version}-%{release}
349 Requires: boost-devel
350 Requires: pkgconfig(libLogger)
351 Requires: libjson-devel
353 %description -n libConfig-devel
354 The package provides libConfig development tools and libs.
356 %files -n libConfig-devel
357 %defattr(644,root,root,755)
358 %{_libdir}/libConfig.so
359 %{_includedir}/vasum-tools/config
360 %{_libdir}/pkgconfig/libConfig.pc
362 ## libIpc Package #######################################################
365 Group: Security/Other
366 BuildRequires: pkgconfig(libsystemd-daemon)
368 Requires(post): /sbin/ldconfig
369 Requires(postun): /sbin/ldconfig
371 %description -n libIpc
372 The package provides libIpc library.
374 %post -n libIpc -p /sbin/ldconfig
376 %postun -n libIpc -p /sbin/ldconfig
379 %defattr(644,root,root,755)
380 %{_libdir}/libIpc.so.0
381 %attr(755,root,root) %{_libdir}/libIpc.so.%{version}
383 %package -n libIpc-devel
384 Summary: Development IPC library
385 Group: Development/Libraries
386 Requires: libIpc = %{epoch}:%{version}-%{release}
387 Requires: pkgconfig(libLogger)
388 Requires: pkgconfig(libConfig)
390 %description -n libIpc-devel
391 The package provides libIpc development tools and libs.
393 %files -n libIpc-devel
394 %defattr(644,root,root,755)
396 %{_includedir}/vasum-tools/ipc
397 %{_libdir}/pkgconfig/libIpc.pc