Various changes relating to build on Fedora Linux.
[platform/core/security/vasum.git] / packaging / vasum.spec
index 07b2f0c..bd7346c 100644 (file)
@@ -8,6 +8,8 @@
 %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
@@ -19,16 +21,17 @@ Group:          Security/Other
 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
@@ -36,21 +39,21 @@ between them. A process from inside a zone can request a switch of context
 (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
@@ -80,7 +83,7 @@ make -k %{?jobs:-j%jobs}
 %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}
@@ -125,18 +128,20 @@ Requires(postun): /sbin/ldconfig
 %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
@@ -149,11 +154,14 @@ Requires:         vasum-client = %{epoch}:%{version}-%{release}
 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
 
 
@@ -166,7 +174,9 @@ Group:            Security/Other
 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
 
@@ -181,7 +191,9 @@ Requires:         vasum-zone-support = %{epoch}:%{version}-%{release}
 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
@@ -207,7 +219,7 @@ Requires:         vasum-cli = %{epoch}:%{version}-%{release}
 #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
@@ -219,7 +231,9 @@ Group:            Development/Libraries
 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
@@ -238,7 +252,9 @@ systemctl disable vasum-socket-test.socket
 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
@@ -246,8 +262,12 @@ systemctl daemon-reload
 %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
@@ -257,6 +277,7 @@ systemctl daemon-reload
 %package -n libLogger
 Summary:            Logger library
 Group:              Security/Other
+BuildRequires:      pkgconfig(libsystemd-journal)
 Requires(post):     /sbin/ldconfig
 Requires(postun):   /sbin/ldconfig
 
@@ -275,7 +296,7 @@ The package provides libLogger library.
 %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.
@@ -308,7 +329,7 @@ The package provides libSimpleDbus library.
 %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
@@ -324,6 +345,14 @@ The package provides libSimpleDbus development tools and libs.
 %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
 
@@ -342,10 +371,14 @@ The package provides libConfig library.
 %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.
@@ -356,4 +389,39 @@ 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