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: libcap-ng-devel
24 BuildRequires: lxc-devel
25 BuildRequires: pkgconfig(glib-2.0)
26 BuildRequires: pkgconfig(libsystemd-journal)
27 BuildRequires: pkgconfig(libsystemd-daemon)
28 BuildRequires: pkgconfig(sqlite3)
29 Requires(post): libcap-tools
30 Requires: bridge-utils
31 Requires: libjson >= 0.10
34 This package provides a daemon used to manage zones - start, stop and switch
35 between them. A process from inside a zone can request a switch of context
36 (display, input devices) to the other zone.
39 %manifest packaging/vasum.manifest
40 %defattr(644,root,root,755)
41 %attr(755,root,root) %{_bindir}/vasum-server
44 %dir /etc/vasum/templates
45 %config /etc/vasum/daemon.conf
46 %attr(755,root,root) /etc/vasum/templates/*.sh
47 %config /etc/vasum/templates/*.conf
48 %{_unitdir}/vasum.service
49 %{_unitdir}/vasum.socket
50 %{_unitdir}/multi-user.target.wants/vasum.service
51 %config /etc/dbus-1/system.d/org.tizen.vasum.host.conf
52 %dir %{_datadir}/.zones
58 %{!?build_type:%define build_type "RELEASE"}
60 %if %{build_type} == "DEBUG" || %{build_type} == "PROFILING"
61 CFLAGS="$CFLAGS -Wp,-U_FORTIFY_SOURCE"
62 CXXFLAGS="$CXXFLAGS -Wp,-U_FORTIFY_SOURCE"
65 %cmake . -DVERSION=%{version} \
66 -DCMAKE_BUILD_TYPE=%{build_type} \
67 -DSCRIPT_INSTALL_DIR=%{script_dir} \
68 -DSYSTEMD_UNIT_DIR=%{_unitdir} \
69 -DDATA_DIR=%{_datadir} \
70 -DPYTHON_SITELIB=%{python_sitelib} \
71 -DVASUM_USER=%{vsm_user} \
72 -DINPUT_EVENT_GROUP=%{input_event_group} \
73 -DDISK_GROUP=%{disk_group} \
74 -DTTY_GROUP=%{tty_group} \
75 -DWITHOUT_DBUS=%{?without_dbus}
76 make -k %{?jobs:-j%jobs}
80 mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
81 ln -s ../vasum.service %{buildroot}/%{_unitdir}/multi-user.target.wants/vasum.service
82 mkdir -p %{buildroot}/%{_datadir}/.zones
88 # Refresh systemd services list after installation
90 systemctl daemon-reload || :
92 # set needed caps on the binary to allow restart without loosing them
93 setcap CAP_SYS_ADMIN,CAP_MAC_OVERRIDE,CAP_SYS_TTY_CONFIG+ei %{_bindir}/vasum-server
96 # Stop the service before uninstall
98 systemctl stop vasum.service || :
102 # Refresh systemd services list after uninstall/upgrade
103 systemctl daemon-reload || :
104 if [ $1 -ge 1 ]; then
105 # TODO: at this point an appropriate notification should show up
106 eval `systemctl show vasum --property=MainPID`
107 if [ -n "$MainPID" -a "$MainPID" != "0" ]; then
110 echo "Vasum updated. Reboot is required for the changes to take effect..."
112 echo "Vasum removed. Reboot is required for the changes to take effect..."
115 ## Client Package ##############################################################
117 Summary: Vasum Client
118 Group: Development/Libraries
119 Requires: vasum = %{epoch}:%{version}-%{release}
120 Obsoletes: vasum < 1:0
121 Requires(post): /sbin/ldconfig
122 Requires(postun): /sbin/ldconfig
125 Library interface to the vasum daemon
127 %post -n vasum-client -p /sbin/ldconfig
129 %postun -n vasum-client -p /sbin/ldconfig
132 %manifest packaging/libvasum-client.manifest
133 %defattr(644,root,root,755)
134 %attr(755,root,root) %{_libdir}/libvasum-client.so.%{version}
135 %{_libdir}/libvasum-client.so.0
136 %attr(755,root,root) %{_libdir}/libvasum.so.%{version}
137 %{_libdir}/libvasum.so.0
140 ## Devel Package ###############################################################
142 Summary: Vasum Client Devel
143 Group: Development/Libraries
144 Requires: vasum = %{epoch}:%{version}-%{release}
145 Requires: vasum-client = %{epoch}:%{version}-%{release}
148 Development package including the header files for the client library
151 %manifest packaging/vasum.manifest
152 %defattr(644,root,root,755)
153 %{_libdir}/libvasum-client.so
154 %{_libdir}/libvasum.so
156 %{_libdir}/pkgconfig/vasum-client.pc
157 %{_libdir}/pkgconfig/vasum.pc
160 ## Zone Support Package ###################################################
161 %package zone-support
162 Summary: Vasum Support
163 Group: Security/Other
165 %description zone-support
166 Zones support installed inside every zone.
169 %manifest packaging/vasum-zone-support.manifest
170 %defattr(644,root,root,755)
171 %config /etc/dbus-1/system.d/org.tizen.vasum.zone.conf
174 ## Zone Daemon Package ####################################################
176 Summary: Vasum Zones Daemon
177 Group: Security/Other
178 Requires: vasum-zone-support = %{epoch}:%{version}-%{release}
180 %description zone-daemon
181 Daemon running inside every zone.
184 %manifest packaging/vasum-zone-daemon.manifest
185 %defattr(644,root,root,755)
186 %attr(755,root,root) %{_bindir}/vasum-zone-daemon
187 %config /etc/dbus-1/system.d/org.tizen.vasum.zone.daemon.conf
190 ## Command Line Interface ######################################################
192 Summary: Vasum Command Line Interface
193 Group: Security/Other
194 Requires: vasum-client = %{epoch}:%{version}-%{release}
197 Command Line Interface for vasum.
200 %defattr(644,root,root,755)
201 %attr(755,root,root) %{_bindir}/vasum-cli
203 %package cli-completion
204 Summary: Vasum Command Line Interface bash completion
205 Group: Security/Other
206 Requires: vasum-cli = %{epoch}:%{version}-%{release}
207 #Requires: bash-completion
209 %description cli-completion
210 Command Line Interface bash completion for vasum.
212 %files cli-completion
213 %attr(755,root,root) %{_sysconfdir}/bash_completion.d/vasum-cli-completion.sh
215 ## Test Package ################################################################
218 Group: Development/Libraries
219 Requires: vasum = %{epoch}:%{version}-%{release}
220 Requires: vasum-client = %{epoch}:%{version}-%{release}
226 Unit tests for both: server and client and integration tests.
229 systemctl daemon-reload
230 systemctl enable vasum-socket-test.socket
231 systemctl start vasum-socket-test.socket
234 systemctl stop vasum-socket-test.socket
235 systemctl disable vasum-socket-test.socket
238 systemctl daemon-reload
241 %manifest packaging/vasum-server-tests.manifest
242 %defattr(644,root,root,755)
243 %attr(755,root,root) %{_bindir}/vasum-server-unit-tests
244 %attr(755,root,root) %{_bindir}/vasum-socket-test
245 %attr(755,root,root) %{script_dir}/vsm_all_tests.py
246 %attr(755,root,root) %{script_dir}/vsm_int_tests.py
247 %attr(755,root,root) %{script_dir}/vsm_launch_test.py
248 %{script_dir}/vsm_test_parser.py
249 %config /etc/vasum/tests/*.conf
250 %config /etc/vasum/tests/dbus/*.conf
251 %config /etc/vasum/tests/provision/*.conf
252 %config /etc/vasum/tests/templates/*.conf
253 %attr(755,root,root) /etc/vasum/tests/templates/*.sh
254 %config /etc/vasum/tests/utils/*.txt
255 %{python_sitelib}/vsm_integration_tests
256 %config /etc/dbus-1/system.d/org.tizen.vasum.tests.conf
257 %{_unitdir}/vasum-socket-test.socket
258 %{_unitdir}/vasum-socket-test.service
260 ## libLogger Package ###########################################################
261 %package -n libLogger
262 Summary: Logger library
263 Group: Security/Other
264 Requires(post): /sbin/ldconfig
265 Requires(postun): /sbin/ldconfig
267 %description -n libLogger
268 The package provides libLogger library.
270 %post -n libLogger -p /sbin/ldconfig
272 %postun -n libLogger -p /sbin/ldconfig
275 %defattr(644,root,root,755)
276 %{_libdir}/libLogger.so.0
277 %attr(755,root,root) %{_libdir}/libLogger.so.%{version}
279 %package -n libLogger-devel
280 Summary: Development logger library
281 Group: Development/Libraries
282 Requires: libLogger = %{epoch}:%{version}-%{release}
284 %description -n libLogger-devel
285 The package provides libLogger development tools and libs.
287 %files -n libLogger-devel
288 %defattr(644,root,root,755)
289 %{_libdir}/libLogger.so
290 %{_includedir}/vasum-tools/logger
291 %{_libdir}/pkgconfig/libLogger.pc
293 ## libSimpleDbus Package #######################################################
294 %package -n libSimpleDbus
295 Summary: Simple dbus library
296 Group: Security/Other
297 Requires(post): /sbin/ldconfig
298 Requires(postun): /sbin/ldconfig
300 %description -n libSimpleDbus
301 The package provides libSimpleDbus library.
303 %post -n libSimpleDbus -p /sbin/ldconfig
305 %postun -n libSimpleDbus -p /sbin/ldconfig
307 %files -n libSimpleDbus
308 %defattr(644,root,root,755)
309 %{_libdir}/libSimpleDbus.so.0
310 %attr(755,root,root) %{_libdir}/libSimpleDbus.so.%{version}
312 %package -n libSimpleDbus-devel
313 Summary: Development Simple dbus library
314 Group: Development/Libraries
315 Requires: libSimpleDbus = %{epoch}:%{version}-%{release}
316 Requires: pkgconfig(libLogger)
318 %description -n libSimpleDbus-devel
319 The package provides libSimpleDbus development tools and libs.
321 %files -n libSimpleDbus-devel
322 %defattr(644,root,root,755)
323 %{_libdir}/libSimpleDbus.so
324 %{_includedir}/vasum-tools/dbus
325 %{_libdir}/pkgconfig/libSimpleDbus.pc
327 ## libConfig Package ##########################################################
328 %package -n libConfig
329 Summary: Config library
330 Group: Security/Other
331 Requires(post): /sbin/ldconfig
332 Requires(postun): /sbin/ldconfig
334 %description -n libConfig
335 The package provides libConfig library.
337 %post -n libConfig -p /sbin/ldconfig
339 %postun -n libConfig -p /sbin/ldconfig
342 %defattr(644,root,root,755)
343 %{_libdir}/libConfig.so.0
344 %attr(755,root,root) %{_libdir}/libConfig.so.%{version}
346 %package -n libConfig-devel
347 Summary: Development Config library
348 Group: Development/Libraries
349 Requires: libConfig = %{epoch}:%{version}-%{release}
350 Requires: boost-devel
351 Requires: pkgconfig(libLogger)
352 Requires: libjson-devel
354 %description -n libConfig-devel
355 The package provides libConfig development tools and libs.
357 %files -n libConfig-devel
358 %defattr(644,root,root,755)
359 %{_libdir}/libConfig.so
360 %{_includedir}/vasum-tools/config
361 %{_libdir}/pkgconfig/libConfig.pc
363 ## libIpc Package #######################################################
366 Group: Security/Other
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