Name: stc-manager
Summary: STC(Smart Traffic Control) manager
-Version: 0.0.37
+Version: 0.0.99
Release: 0
Group: Network & Connectivity/Other
License: Apache-2.0
%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)
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)
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
+
+%package plugin-pcap
+Summary: STC manager exception packet capture plugin
+BuildRequires: libpcap-devel
-%description plugin
-A smart traffic control manager extension for plugin
+%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
+BuildRequires: pkgconfig(bundle)
+BuildRequires: pkgconfig(syspopup-caller)
+
+%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
%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} \
-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}
%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
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
%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