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
31 This package provides a daemon used to manage zones - start, stop and switch
32 between them. A process from inside a zone can request a switch of context
33 (display, input devices) to the other zone.
36 %manifest packaging/vasum.manifest
37 %defattr(644,root,root,755)
38 %attr(755,root,root) %{_bindir}/vasum-server
41 %dir /etc/vasum/templates
42 %config /etc/vasum/daemon.conf
43 %attr(755,root,root) /etc/vasum/templates/*.sh
44 %config /etc/vasum/templates/*.conf
45 %{_unitdir}/vasum.service
46 %{_unitdir}/vasum.socket
47 %{_unitdir}/multi-user.target.wants/vasum.service
48 %config /etc/dbus-1/system.d/org.tizen.vasum.host.conf
49 %dir %{_datadir}/.zones
55 %{!?build_type:%define build_type "RELEASE"}
57 %if %{build_type} == "DEBUG" || %{build_type} == "PROFILING"
58 CFLAGS="$CFLAGS -Wp,-U_FORTIFY_SOURCE"
59 CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
62 %cmake . -DVERSION=%{version} \
63 -DCMAKE_BUILD_TYPE=%{build_type} \
64 -DSCRIPT_INSTALL_DIR=%{script_dir} \
65 -DSYSTEMD_UNIT_DIR=%{_unitdir} \
66 -DDATA_DIR=%{_datadir} \
67 -DPYTHON_SITELIB=%{python_sitelib} \
68 -DVASUM_USER=%{vsm_user} \
69 -DINPUT_EVENT_GROUP=%{input_event_group} \
70 -DDISK_GROUP=%{disk_group} \
71 -DTTY_GROUP=%{tty_group} \
72 -DWITHOUT_DBUS=%{?without_dbus}
73 make -k %{?jobs:-j%jobs}
77 mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
78 ln -s ../vasum.service %{buildroot}/%{_unitdir}/multi-user.target.wants/vasum.service
79 mkdir -p %{buildroot}/%{_datadir}/.zones
85 # Refresh systemd services list after installation
87 systemctl daemon-reload || :
89 # set needed caps on the binary to allow restart without loosing them
90 setcap CAP_SYS_ADMIN,CAP_MAC_OVERRIDE,CAP_SYS_TTY_CONFIG+ei %{_bindir}/vasum-server
93 # Stop the service before uninstall
95 systemctl stop vasum.service || :
99 # Refresh systemd services list after uninstall/upgrade
100 systemctl daemon-reload || :
101 if [ $1 -ge 1 ]; then
102 # TODO: at this point an appropriate notification should show up
103 eval `systemctl show vasum --property=MainPID`
104 if [ -n "$MainPID" -a "$MainPID" != "0" ]; then
107 echo "Vasum updated. Reboot is required for the changes to take effect..."
109 echo "Vasum removed. Reboot is required for the changes to take effect..."
112 ## Client Package ##############################################################
114 Summary: Vasum Client
115 Group: Development/Libraries
116 Requires: vasum = %{epoch}:%{version}-%{release}
117 Obsoletes: vasum < 1:0
118 Requires(post): /sbin/ldconfig
119 Requires(postun): /sbin/ldconfig
122 Library interface to the vasum daemon
124 %post -n vasum-client -p /sbin/ldconfig
126 %postun -n vasum-client -p /sbin/ldconfig
129 %manifest packaging/libvasum-client.manifest
130 %defattr(644,root,root,755)
131 %attr(755,root,root) %{_libdir}/libvasum-client.so.%{version}
132 %{_libdir}/libvasum-client.so.0
133 %attr(755,root,root) %{_libdir}/libvasum.so.%{version}
134 %{_libdir}/libvasum.so.0
137 ## Devel Package ###############################################################
139 Summary: Vasum Client Devel
140 Group: Development/Libraries
141 Requires: vasum = %{epoch}:%{version}-%{release}
142 Requires: vasum-client = %{epoch}:%{version}-%{release}
145 Development package including the header files for the client library
148 %manifest packaging/vasum.manifest
149 %defattr(644,root,root,755)
150 %{_libdir}/libvasum-client.so
151 %{_libdir}/libvasum.so
153 %{_libdir}/pkgconfig/vasum-client.pc
154 %{_libdir}/pkgconfig/vasum.pc
157 ## Zone Support Package ###################################################
158 %package zone-support
159 Summary: Vasum Support
160 Group: Security/Other
162 %description zone-support
163 Zones support installed inside every zone.
166 %manifest packaging/vasum-zone-support.manifest
167 %defattr(644,root,root,755)
168 %config /etc/dbus-1/system.d/org.tizen.vasum.zone.conf
171 ## Zone Daemon Package ####################################################
173 Summary: Vasum Zones Daemon
174 Group: Security/Other
175 Requires: vasum-zone-support = %{epoch}:%{version}-%{release}
177 %description zone-daemon
178 Daemon running inside every zone.
181 %manifest packaging/vasum-zone-daemon.manifest
182 %defattr(644,root,root,755)
183 %attr(755,root,root) %{_bindir}/vasum-zone-daemon
184 %config /etc/dbus-1/system.d/org.tizen.vasum.zone.daemon.conf
187 ## Command Line Interface ######################################################
189 Summary: Vasum Command Line Interface
190 Group: Security/Other
191 Requires: vasum-client = %{epoch}:%{version}-%{release}
194 Command Line Interface for vasum.
197 %defattr(644,root,root,755)
198 %attr(755,root,root) %{_bindir}/vasum-cli
200 %package cli-completion
201 Summary: Vasum Command Line Interface bash completion
202 Group: Security/Other
203 Requires: vasum-cli = %{epoch}:%{version}-%{release}
204 #Requires: bash-completion
206 %description cli-completion
207 Command Line Interface bash completion for vasum.
209 %files cli-completion
210 %attr(755,root,root) %{_sysconfdir}/bash_completion.d/vasum-cli-completion.sh
212 ## Test Package ################################################################
215 Group: Development/Libraries
216 Requires: vasum = %{epoch}:%{version}-%{release}
217 Requires: vasum-client = %{epoch}:%{version}-%{release}
223 Unit tests for both: server and client and integration tests.
226 systemctl daemon-reload
227 systemctl enable vasum-socket-test.socket
228 systemctl start vasum-socket-test.socket
231 systemctl stop vasum-socket-test.socket
232 systemctl disable vasum-socket-test.socket
235 systemctl daemon-reload
238 %manifest packaging/vasum-server-tests.manifest
239 %defattr(644,root,root,755)
240 %attr(755,root,root) %{_bindir}/vasum-server-unit-tests
241 %attr(755,root,root) %{_bindir}/vasum-socket-test
242 %attr(755,root,root) %{script_dir}/vsm_all_tests.py
243 %attr(755,root,root) %{script_dir}/vsm_int_tests.py
244 %attr(755,root,root) %{script_dir}/vsm_launch_test.py
245 %{script_dir}/vsm_test_parser.py
246 %config /etc/vasum/tests/*.conf
247 %config /etc/vasum/tests/dbus/*.conf
248 %config /etc/vasum/tests/provision/*.conf
249 %config /etc/vasum/tests/templates/*.conf
250 %attr(755,root,root) /etc/vasum/tests/templates/*.sh
251 %config /etc/vasum/tests/utils/*.txt
252 %{python_sitelib}/vsm_integration_tests
253 %config /etc/dbus-1/system.d/org.tizen.vasum.tests.conf
254 %{_unitdir}/vasum-socket-test.socket
255 %{_unitdir}/vasum-socket-test.service
257 ## libLogger Package ###########################################################
258 %package -n libLogger
259 Summary: Logger library
260 Group: Security/Other
261 BuildRequires: pkgconfig(libsystemd-journal)
262 Requires(post): /sbin/ldconfig
263 Requires(postun): /sbin/ldconfig
265 %description -n libLogger
266 The package provides libLogger library.
268 %post -n libLogger -p /sbin/ldconfig
270 %postun -n libLogger -p /sbin/ldconfig
273 %defattr(644,root,root,755)
274 %{_libdir}/libLogger.so.0
275 %attr(755,root,root) %{_libdir}/libLogger.so.%{version}
277 %package -n libLogger-devel
278 Summary: Development logger library
279 Group: Development/Libraries
280 Requires: libLogger = %{epoch}:%{version}-%{release}
282 %description -n libLogger-devel
283 The package provides libLogger development tools and libs.
285 %files -n libLogger-devel
286 %defattr(644,root,root,755)
287 %{_libdir}/libLogger.so
288 %{_includedir}/vasum-tools/logger
289 %{_libdir}/pkgconfig/libLogger.pc
291 ## libSimpleDbus Package #######################################################
292 %package -n libSimpleDbus
293 Summary: Simple dbus library
294 Group: Security/Other
295 Requires(post): /sbin/ldconfig
296 Requires(postun): /sbin/ldconfig
298 %description -n libSimpleDbus
299 The package provides libSimpleDbus library.
301 %post -n libSimpleDbus -p /sbin/ldconfig
303 %postun -n libSimpleDbus -p /sbin/ldconfig
305 %files -n libSimpleDbus
306 %defattr(644,root,root,755)
307 %{_libdir}/libSimpleDbus.so.0
308 %attr(755,root,root) %{_libdir}/libSimpleDbus.so.%{version}
310 %package -n libSimpleDbus-devel
311 Summary: Development Simple dbus library
312 Group: Development/Libraries
313 Requires: libSimpleDbus = %{epoch}:%{version}-%{release}
314 Requires: pkgconfig(libLogger)
316 %description -n libSimpleDbus-devel
317 The package provides libSimpleDbus development tools and libs.
319 %files -n libSimpleDbus-devel
320 %defattr(644,root,root,755)
321 %{_libdir}/libSimpleDbus.so
322 %{_includedir}/vasum-tools/dbus
323 %{_libdir}/pkgconfig/libSimpleDbus.pc
325 ## libConfig Package ##########################################################
326 %package -n libConfig
327 Summary: Config library
328 Group: Security/Other
329 Requires(post): /sbin/ldconfig
330 Requires(postun): /sbin/ldconfig
332 %description -n libConfig
333 The package provides libConfig library.
335 %post -n libConfig -p /sbin/ldconfig
337 %postun -n libConfig -p /sbin/ldconfig
340 %defattr(644,root,root,755)
341 %{_libdir}/libConfig.so.0
342 %attr(755,root,root) %{_libdir}/libConfig.so.%{version}
344 %package -n libConfig-devel
345 Summary: Development Config library
346 Group: Development/Libraries
347 Requires: libConfig = %{epoch}:%{version}-%{release}
348 Requires: boost-devel
349 Requires: pkgconfig(libLogger)
350 Requires: libjson-devel
352 %description -n libConfig-devel
353 The package provides libConfig development tools and libs.
355 %files -n libConfig-devel
356 %defattr(644,root,root,755)
357 %{_libdir}/libConfig.so
358 %{_includedir}/vasum-tools/config
359 %{_libdir}/pkgconfig/libConfig.pc
361 ## libIpc Package #######################################################
364 Group: Security/Other
365 BuildRequires: pkgconfig(libsystemd-daemon)
367 Requires(post): /sbin/ldconfig
368 Requires(postun): /sbin/ldconfig
370 %description -n libIpc
371 The package provides libIpc library.
373 %post -n libIpc -p /sbin/ldconfig
375 %postun -n libIpc -p /sbin/ldconfig
378 %defattr(644,root,root,755)
379 %{_libdir}/libIpc.so.0
380 %attr(755,root,root) %{_libdir}/libIpc.so.%{version}
382 %package -n libIpc-devel
383 Summary: Development IPC library
384 Group: Development/Libraries
385 Requires: libIpc = %{epoch}:%{version}-%{release}
386 Requires: pkgconfig(libLogger)
387 Requires: pkgconfig(libConfig)
389 %description -n libIpc-devel
390 The package provides libIpc development tools and libs.
392 %files -n libIpc-devel
393 %defattr(644,root,root,755)
395 %{_includedir}/vasum-tools/ipc
396 %{_libdir}/pkgconfig/libIpc.pc