Merge "Add os upgrade file for database" into tizen
[platform/core/connectivity/stc-manager.git] / packaging / stc-manager.spec
index bd37172..2dc6918 100644 (file)
@@ -1,6 +1,6 @@
 Name:       stc-manager
 Summary:    STC(Smart Traffic Control) manager
-Version:    0.0.42
+Version:    0.0.95
 Release:    0
 Group:      Network & Connectivity/Other
 License:    Apache-2.0
@@ -10,6 +10,8 @@ Source0:    %{name}-%{version}.tar.gz
 %define enable_statistics YES
 %define enable_restriction YES
 %define database_full_path /opt/usr/dbspace/.stc-manager-datausage.db
+%define upgrade_script_filename 500.stc-manager_upgrade.sh
+%define upgrade_script_path /usr/share/upgrade/scripts
 
 BuildRequires:  cmake
 BuildRequires:  pkgconfig(glib-2.0)
@@ -20,8 +22,7 @@ BuildRequires:  pkgconfig(dlog)
 BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires: pkgconfig(vconf)
 BuildRequires:  pkgconfig(capi-system-info)
-BuildRequires:  pkgconfig(pkgmgr-info)
-BuildRequires:  pkgconfig(openssl)
+BuildRequires:  pkgconfig(openssl1.1)
 
 %if %{?enable_database} == YES
 BuildRequires: pkgconfig(sqlite3)
@@ -30,16 +31,62 @@ BuildRequires:      pkgconfig(sqlite3)
 BuildRequires:  python
 BuildRequires:  python-xml
 
+%if 0%{?gtests:1}
+BuildRequires: pkgconfig(gmock)
+%endif
+
 %description
 A smart traffic control manager to manage traffic counting and bandwidth limitation
 
-%package plugin
-Summary: STC manager plugin
+%package plugin-appstatus
+Summary: STC manager application status plugin
 BuildRequires: pkgconfig(bundle)
 BuildRequires: pkgconfig(syspopup-caller)
+Requires:      stc-manager-plugin-monitor
+
+%description plugin-appstatus
+A smart traffic control manager extension for application status plugin
+
+%package plugin-exception
+Summary: STC manager exception list plugin
+BuildRequires:  pkgconfig(pkgmgr-info)
+Requires:      stc-manager-plugin-monitor
+
+%description plugin-exception
+A smart traffic control manager extension for exception list plugin
+
+%package plugin-procfs
+Summary: STC manager exception proc file system plugin
+Requires:      stc-manager-plugin-monitor
+
+%description plugin-procfs
+A smart traffic control manager extension for proc file system plugin
 
-%description plugin
-A smart traffic control manager extension for plugin
+%package plugin-pcap
+Summary: STC manager exception packet capture plugin
+BuildRequires:  libpcap-devel
+
+%description plugin-pcap
+A smart traffic control manager extension for packet capture plugin
+
+%package plugin-tether
+Summary: Tethering plugin for data usage of tethering clients
+Requires:      stc-manager-plugin-monitor
+
+%description plugin-tether
+A smart traffic control manager extension for tethering client data usage plugin
+
+%package plugin-monitor
+Summary: Monitor plugin for data usage of clients
+
+%description plugin-monitor
+A smart traffic control manager extension for monitoring client data usage plugin
+
+%package plugin-firewall
+Summary: Firewall plugin for managing firewall rules
+
+%description plugin-firewall
+A smart traffic control manager extension for firewall plugin
 
 %prep
 %setup -q
@@ -47,9 +94,12 @@ chmod 644 %{SOURCE0}
 
 %build
 
-export CFLAGS="$CFLAGS -DTIZEN_DEBUG_ENABLE -D_GNU_SOURCE"
-export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE -D_GNU_SOURCE"
-export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
+export CFLAGS="$CFLAGS -D_GNU_SOURCE"
+export CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
+
+%if "%{tizen_profile_name}" == "tv"
+       CFLAGS+=" -DTIZEN_TV_EXT"
+%endif
 
 %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
        -DBIN_DIR=%{_bindir} \
@@ -57,7 +107,9 @@ export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
        -DENABLE_DATABASE=%{enable_database} \
        -DDATABASE_FULL_PATH=%{database_full_path} \
        -DENABLE_STATISTICS=%{enable_statistics} \
-       -DENABLE_RESTRICTION=%{enable_restriction}
+       -DENABLE_RESTRICTION=%{enable_restriction} \
+       -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
+       -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
 
 make %{?_smp_mflags}
 
@@ -70,7 +122,9 @@ rm -rf %{buildroot}
 %if %{?enable_database} == YES
        mkdir -p %{buildroot}/opt/usr/dbspace
        sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/traffic_db.sql
+       sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/firewall_db.sql
        rm %{buildroot}/usr/share/traffic_db.sql
+       rm %{buildroot}/usr/share/firewall_db.sql
 %endif
 
 #Exceptions file
@@ -88,6 +142,13 @@ ln -s ../stc-manager.service %{buildroot}%{_libdir}/systemd/system/multi-user.ta
 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
 cp resources/dbus/stc-manager.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/stc-manager.conf
 
+mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services/
+cp resources/dbus/net.stc-manager.service %{buildroot}%{_datadir}/dbus-1/system-services/net.stc-manager.service
+
+#OS Upgrade
+mkdir -p %{buildroot}%{upgrade_script_path}
+cp -f scripts/%{upgrade_script_filename} %{buildroot}%{upgrade_script_path}
+
 %files
 %manifest %{name}.manifest
 %license LICENSE
@@ -97,18 +158,49 @@ cp resources/dbus/stc-manager.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/st
 %attr(644,root,root) %{_libdir}/systemd/system/stc-manager.service
 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
 
-%attr(755,root,root) /%{_localstatedir}/lib/stc
+%attr(755,network_fw,network_fw) /%{_localstatedir}/lib/stc
 %attr(600,root,root) /%{_localstatedir}/lib/stc/exceptions
 
 #DBus DAC
 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/*
+%attr(644,root,root) %{_datadir}/dbus-1/system-services/*
 
 %if %{?enable_database} == YES
 %config(noreplace) %attr(660, root, root) %{database_full_path}
 %config(noreplace) %attr(660, root, root) %{database_full_path}-journal
 %endif
 
-%files plugin
+%if 0%{?gtests:1}
+%{_bindir}/gtest*
+%endif
+
+%{upgrade_script_path}/%{upgrade_script_filename}
+
+%files plugin-appstatus
 %manifest %{name}.manifest
 %attr(644, -,-) %{_datadir}/icons/*.png
-%attr(500,root,root) %{_libdir}/stc-manager-plugin.so
+%attr(500,root,root) %{_libdir}/stc-plugin-appstatus.so
+
+%files plugin-exception
+%manifest %{name}.manifest
+%attr(500,root,root) %{_libdir}/stc-plugin-exception.so
+
+%files plugin-procfs
+%manifest %{name}.manifest
+%attr(500,root,root) %{_libdir}/stc-plugin-procfs.so
+
+%files plugin-pcap
+%manifest %{name}.manifest
+%attr(500,root,root) %{_libdir}/stc-plugin-pcap.so
+
+%files plugin-tether
+%manifest %{name}.manifest
+%attr(500,root,root) %{_libdir}/stc-plugin-tether.so
+
+%files plugin-monitor
+%manifest %{name}.manifest
+%attr(500,root,root) %{_libdir}/stc-plugin-monitor.so
+
+%files plugin-firewall
+%manifest %{name}.manifest
+%attr(500,root,root) %{_libdir}/stc-plugin-firewall.so