%define disk_group disk
# The group that has write access to /dev/tty* devices.
%define tty_group tty
+# Default platform is Tizen, setup Fedora with --define 'platform_type FEDORA'
+%{!?platform_type:%define platform_type "TIZEN"}
Name: vasum
Epoch: 1
Summary: Daemon for managing zones
BuildRequires: cmake
BuildRequires: boost-devel
-BuildRequires: libjson-devel >= 0.10
-BuildRequires: libcap-ng-devel
-BuildRequires: lxc-devel
BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(libsystemd-journal)
-BuildRequires: pkgconfig(libsystemd-daemon)
-BuildRequires: pkgconfig(sqlite3)
+BuildRequires: lxc-devel
+Requires: lxc
+%if %{platform_type} == "TIZEN"
+Requires: iproute2
Requires(post): libcap-tools
-Requires: bridge-utils
-Requires: libjson >= 0.10
+%else
+Requires: iproute
+Requires(post): libcap
+%endif
+Obsoletes: vasum-daemon < 1:0
%description
This package provides a daemon used to manage zones - start, stop and switch
(display, input devices) to the other zone.
%files
+%if %{platform_type} == "TIZEN"
%manifest packaging/vasum.manifest
+%endif
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/vasum-server
%dir /etc/vasum
-%dir /etc/vasum/zones
-%dir /etc/vasum/lxc-templates
%dir /etc/vasum/templates
%config /etc/vasum/daemon.conf
-%attr(755,root,root) /etc/vasum/lxc-templates/*.sh
+%attr(755,root,root) /etc/vasum/templates/*.sh
%config /etc/vasum/templates/*.conf
%{_unitdir}/vasum.service
%{_unitdir}/vasum.socket
%{_unitdir}/multi-user.target.wants/vasum.service
%config /etc/dbus-1/system.d/org.tizen.vasum.host.conf
-%dir %{_datadir}/.zones
+%dir %{_datadir}/zones
%prep
%setup -q
%make_install
mkdir -p %{buildroot}/%{_unitdir}/multi-user.target.wants
ln -s ../vasum.service %{buildroot}/%{_unitdir}/multi-user.target.wants/vasum.service
-mkdir -p %{buildroot}/%{_datadir}/.zones
+mkdir -p %{buildroot}/%{_datadir}/zones
%clean
rm -rf %{buildroot}
%description client
Library interface to the vasum daemon
+%post -n vasum-client -p /sbin/ldconfig
+
+%postun -n vasum-client -p /sbin/ldconfig
+
%files client
+%if %{platform_type} == "TIZEN"
%manifest packaging/libvasum-client.manifest
+%endif
%defattr(644,root,root,755)
%attr(755,root,root) %{_libdir}/libvasum-client.so.%{version}
%{_libdir}/libvasum-client.so.0
%attr(755,root,root) %{_libdir}/libvasum.so.%{version}
%{_libdir}/libvasum.so.0
-%post client -p /sbin/ldconfig
-
-%postun client -p /sbin/ldconfig
-
## Devel Package ###############################################################
%package devel
Development package including the header files for the client library
%files devel
+%if %{platform_type} == "TIZEN"
%manifest packaging/vasum.manifest
+%endif
%defattr(644,root,root,755)
%{_libdir}/libvasum-client.so
%{_libdir}/libvasum.so
%{_includedir}/vasum
+%{_libdir}/pkgconfig/vasum-client.pc
%{_libdir}/pkgconfig/vasum.pc
Zones support installed inside every zone.
%files zone-support
+%if %{platform_type} == "TIZEN"
%manifest packaging/vasum-zone-support.manifest
+%endif
%defattr(644,root,root,755)
%config /etc/dbus-1/system.d/org.tizen.vasum.zone.conf
Daemon running inside every zone.
%files zone-daemon
+%if %{platform_type} == "TIZEN"
%manifest packaging/vasum-zone-daemon.manifest
+%endif
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/vasum-zone-daemon
%config /etc/dbus-1/system.d/org.tizen.vasum.zone.daemon.conf
#Requires: bash-completion
%description cli-completion
-Command Line Interface bash completion.
+Command Line Interface bash completion for vasum.
%files cli-completion
%attr(755,root,root) %{_sysconfdir}/bash_completion.d/vasum-cli-completion.sh
Requires: vasum = %{epoch}:%{version}-%{release}
Requires: vasum-client = %{epoch}:%{version}-%{release}
Requires: python
+%if %{platform_type} == "TIZEN"
Requires: python-xml
+%endif
Requires: boost-test
%description tests
systemctl daemon-reload
%files tests
+%if %{platform_type} == "TIZEN"
%manifest packaging/vasum-server-tests.manifest
+%endif
%defattr(644,root,root,755)
%attr(755,root,root) %{_bindir}/vasum-server-unit-tests
%attr(755,root,root) %{_bindir}/vasum-socket-test
%attr(755,root,root) %{script_dir}/vsm_int_tests.py
%attr(755,root,root) %{script_dir}/vsm_launch_test.py
%{script_dir}/vsm_test_parser.py
-%config /etc/vasum/tests
-%attr(755,root,root) /etc/vasum/tests/lxc-templates
+%config /etc/vasum/tests/*.conf
+%config /etc/vasum/tests/dbus/*.conf
+%config /etc/vasum/tests/provision/*.conf
+%config /etc/vasum/tests/templates/*.conf
+%attr(755,root,root) /etc/vasum/tests/templates/*.sh
+%config /etc/vasum/tests/utils/*.txt
%{python_sitelib}/vsm_integration_tests
%config /etc/dbus-1/system.d/org.tizen.vasum.tests.conf
%{_unitdir}/vasum-socket-test.socket
%package -n libLogger
Summary: Logger library
Group: Security/Other
+BuildRequires: pkgconfig(libsystemd-journal)
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%package -n libLogger-devel
Summary: Development logger library
Group: Development/Libraries
-Requires: libLogger = %{version}-%{release}
+Requires: libLogger = %{epoch}:%{version}-%{release}
%description -n libLogger-devel
The package provides libLogger development tools and libs.
%package -n libSimpleDbus-devel
Summary: Development Simple dbus library
Group: Development/Libraries
-Requires: libSimpleDbus = %{version}-%{release}
+Requires: libSimpleDbus = %{epoch}:%{version}-%{release}
Requires: pkgconfig(libLogger)
%description -n libSimpleDbus-devel
%package -n libConfig
Summary: Config library
Group: Security/Other
+BuildRequires: pkgconfig(sqlite3)
+%if %{platform_type} == "TIZEN"
+BuildRequires: libjson-devel >= 0.10
+Requires: libjson >= 0.10
+%else
+BuildRequires: json-c-devel
+Requires: json-c
+%endif
Requires(post): /sbin/ldconfig
Requires(postun): /sbin/ldconfig
%package -n libConfig-devel
Summary: Development Config library
Group: Development/Libraries
-Requires: libConfig = %{version}-%{release}
+Requires: libConfig = %{epoch}:%{version}-%{release}
Requires: boost-devel
Requires: pkgconfig(libLogger)
-Requires: libjson-devel
+%if %{platform_type} == "TIZEN"
+Requires: libjson-devel >= 0.10
+%else
+Requires: json-c-devel
+%endif
%description -n libConfig-devel
The package provides libConfig development tools and libs.
%{_includedir}/vasum-tools/config
%{_libdir}/pkgconfig/libConfig.pc
+## libIpc Package #######################################################
+%package -n libIpc
+Summary: IPC library
+Group: Security/Other
+BuildRequires: pkgconfig(libsystemd-daemon)
+Requires: libConfig
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+
+%description -n libIpc
+The package provides libIpc library.
+
+%post -n libIpc -p /sbin/ldconfig
+
+%postun -n libIpc -p /sbin/ldconfig
+%files -n libIpc
+%defattr(644,root,root,755)
+%{_libdir}/libIpc.so.0
+%attr(755,root,root) %{_libdir}/libIpc.so.%{version}
+
+%package -n libIpc-devel
+Summary: Development IPC library
+Group: Development/Libraries
+Requires: libIpc = %{epoch}:%{version}-%{release}
+Requires: pkgconfig(libLogger)
+Requires: pkgconfig(libConfig)
+
+%description -n libIpc-devel
+The package provides libIpc development tools and libs.
+
+%files -n libIpc-devel
+%defattr(644,root,root,755)
+%{_libdir}/libIpc.so
+%{_includedir}/vasum-tools/ipc
+%{_libdir}/pkgconfig/libIpc.pc