2 Summary: STC(Smart Traffic Control) manager
5 Group: Network & Connectivity/Other
7 Source0: %{name}-%{version}.tar.gz
9 %define enable_database YES
10 %define enable_statistics YES
11 %define enable_restriction YES
12 %define database_full_path %{TZ_SYS_GLOBALUSER_DB}/.stc-manager-datausage.db
13 %define database_backup_path %{TZ_SYS_RO_SHARE}/stc/.stc-manager-datausage.db
14 %define upgrade_script_filename 500.stc-manager_upgrade.sh
15 %define upgrade_script_path %{TZ_SYS_RO_SHARE}/upgrade/scripts
18 BuildRequires: pkgconfig(glib-2.0)
19 BuildRequires: pkgconfig(gio-2.0)
20 BuildRequires: pkgconfig(gobject-2.0)
21 BuildRequires: pkgconfig(gio-unix-2.0)
22 BuildRequires: pkgconfig(dlog)
23 BuildRequires: pkgconfig(libtzplatform-config)
24 BuildRequires: pkgconfig(vconf)
25 BuildRequires: pkgconfig(capi-system-info)
26 BuildRequires: pkgconfig(openssl1.1)
28 %if %{?enable_database} == YES
29 BuildRequires: pkgconfig(sqlite3)
33 BuildRequires: python-xml
36 BuildRequires: pkgconfig(gmock)
40 A smart traffic control manager to manage traffic counting and bandwidth limitation
42 %package plugin-appstatus
43 Summary: STC manager application status plugin
44 BuildRequires: pkgconfig(bundle)
45 BuildRequires: pkgconfig(syspopup-caller)
46 Requires: stc-manager-plugin-monitor
48 %description plugin-appstatus
49 A smart traffic control manager extension for application status plugin
51 %package plugin-exception
52 Summary: STC manager exception list plugin
53 BuildRequires: pkgconfig(pkgmgr-info)
54 Requires: stc-manager-plugin-monitor
56 %description plugin-exception
57 A smart traffic control manager extension for exception list plugin
59 %package plugin-procfs
60 Summary: STC manager exception proc file system plugin
61 Requires: stc-manager-plugin-monitor
63 %description plugin-procfs
64 A smart traffic control manager extension for proc file system plugin
67 Summary: STC manager exception packet capture plugin
68 BuildRequires: libpcap-devel
70 %description plugin-pcap
71 A smart traffic control manager extension for packet capture plugin
73 %package plugin-tether
74 Summary: Tethering plugin for data usage of tethering clients
75 Requires: stc-manager-plugin-monitor
77 %description plugin-tether
78 A smart traffic control manager extension for tethering client data usage plugin
80 %package plugin-monitor
81 Summary: Monitor plugin for data usage of clients
83 %description plugin-monitor
84 A smart traffic control manager extension for monitoring client data usage plugin
86 %package plugin-firewall
87 Summary: Firewall plugin for managing firewall rules
89 %description plugin-firewall
90 A smart traffic control manager extension for firewall plugin
98 export CFLAGS="$CFLAGS -D_GNU_SOURCE"
99 export CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
101 %if "%{tizen_profile_name}" == "tv"
102 CFLAGS+=" -DTIZEN_TV_EXT"
105 %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
106 -DBIN_DIR=%{_bindir} \
108 -DENABLE_DATABASE=%{enable_database} \
109 -DDATABASE_FULL_PATH=%{database_full_path} \
110 -DDATABASE_BACKUP_PATH=%{database_backup_path} \
111 -DENABLE_STATISTICS=%{enable_statistics} \
112 -DENABLE_RESTRICTION=%{enable_restriction} \
113 -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
114 -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
123 #database initialization
124 %if %{?enable_database} == YES
125 mkdir -p %{buildroot}%{TZ_SYS_GLOBALUSER_DB}
126 sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/traffic_db.sql
127 sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/firewall_db.sql
128 mkdir -p %{buildroot}%{TZ_SYS_RO_SHARE}/stc
129 cp %{buildroot}%{database_full_path} %{buildroot}%{database_backup_path}
130 rm %{buildroot}/usr/share/traffic_db.sql
131 rm %{buildroot}/usr/share/firewall_db.sql
135 mkdir -p %{buildroot}/%{_localstatedir}/lib/stc
136 cp data/exceptions %{buildroot}/%{_localstatedir}/lib/stc/exceptions
138 #Systemd service file
139 mkdir -p %{buildroot}%{_libdir}/systemd/system/
140 cp resources/systemd/stc-manager.service %{buildroot}%{_libdir}/systemd/system/stc-manager.service
142 mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/
143 ln -s ../stc-manager.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
145 #DBus DAC (stc-manager.manifest enables DBus SMACK)
146 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
147 cp resources/dbus/stc-manager.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/stc-manager.conf
149 mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services/
150 cp resources/dbus/net.stc-manager.service %{buildroot}%{_datadir}/dbus-1/system-services/net.stc-manager.service
153 mkdir -p %{buildroot}%{upgrade_script_path}
154 cp -f scripts/%{upgrade_script_filename} %{buildroot}%{upgrade_script_path}
157 %manifest %{name}.manifest
159 %defattr(-,root,root,-)
160 %attr(500,root,root) %{_bindir}/*
162 %attr(644,root,root) %{_libdir}/systemd/system/stc-manager.service
163 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
165 %attr(755,network_fw,network_fw) /%{_localstatedir}/lib/stc
166 %attr(600,root,root) /%{_localstatedir}/lib/stc/exceptions
169 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/*
170 %attr(644,root,root) %{_datadir}/dbus-1/system-services/*
172 %if %{?enable_database} == YES
173 %config(noreplace) %attr(660, root, root) %{database_full_path}
174 %config(noreplace) %attr(660, root, root) %{database_full_path}-journal
175 %config(noreplace) %attr(660, root, root) %{database_backup_path}
182 %{upgrade_script_path}/%{upgrade_script_filename}
184 %files plugin-appstatus
185 %manifest %{name}.manifest
186 %attr(644, -,-) %{_datadir}/icons/*.png
187 %attr(500,root,root) %{_libdir}/stc-plugin-appstatus.so
189 %files plugin-exception
190 %manifest %{name}.manifest
191 %attr(500,root,root) %{_libdir}/stc-plugin-exception.so
194 %manifest %{name}.manifest
195 %attr(500,root,root) %{_libdir}/stc-plugin-procfs.so
198 %manifest %{name}.manifest
199 %attr(500,root,root) %{_libdir}/stc-plugin-pcap.so
202 %manifest %{name}.manifest
203 %attr(500,root,root) %{_libdir}/stc-plugin-tether.so
205 %files plugin-monitor
206 %manifest %{name}.manifest
207 %attr(500,root,root) %{_libdir}/stc-plugin-monitor.so
209 %files plugin-firewall
210 %manifest %{name}.manifest
211 %attr(500,root,root) %{_libdir}/stc-plugin-firewall.so