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 /opt/usr/dbspace/.stc-manager-datausage.db
15 BuildRequires: pkgconfig(glib-2.0)
16 BuildRequires: pkgconfig(gio-2.0)
17 BuildRequires: pkgconfig(gobject-2.0)
18 BuildRequires: pkgconfig(gio-unix-2.0)
19 BuildRequires: pkgconfig(dlog)
20 BuildRequires: pkgconfig(libtzplatform-config)
21 BuildRequires: pkgconfig(vconf)
22 BuildRequires: pkgconfig(capi-system-info)
23 BuildRequires: pkgconfig(openssl)
25 %if %{?enable_database} == YES
26 BuildRequires: pkgconfig(sqlite3)
30 BuildRequires: python-xml
33 BuildRequires: pkgconfig(gmock)
37 A smart traffic control manager to manage traffic counting and bandwidth limitation
39 %package plugin-appstatus
40 Summary: STC manager application status plugin
41 BuildRequires: pkgconfig(bundle)
42 BuildRequires: pkgconfig(syspopup-caller)
44 %description plugin-appstatus
45 A smart traffic control manager extension for application status plugin
47 %package plugin-exception
48 Summary: STC manager exception list plugin
49 BuildRequires: pkgconfig(pkgmgr-info)
51 %description plugin-exception
52 A smart traffic control manager extension for exception list plugin
54 %package plugin-procfs
55 Summary: STC manager exception proc file system plugin
57 %description plugin-procfs
58 A smart traffic control manager extension for proc file system plugin
61 Summary: STC manager exception packet capture plugin
62 BuildRequires: libpcap-devel
64 %description plugin-pcap
65 A smart traffic control manager extension for packet capture plugin
67 %package plugin-tether
68 Summary: Tethering plugin for data usage of tethering clients
70 %description plugin-tether
71 A smart traffic control manager extension for tethering client data usage plugin
73 %package plugin-monitor
74 Summary: Monitor plugin for data usage of clients
76 %description plugin-monitor
77 A smart traffic control manager extension for monitoring client data usage plugin
79 %package plugin-firewall
80 Summary: Firewall plugin for managing firewall rules
82 %description plugin-firewall
83 A smart traffic control manager extension for firewall plugin
91 export CFLAGS="$CFLAGS -D_GNU_SOURCE"
92 export CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
94 %if "%{tizen_profile_name}" == "tv"
95 CFLAGS+=" -DTIZEN_TV_EXT"
98 %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
99 -DBIN_DIR=%{_bindir} \
101 -DENABLE_DATABASE=%{enable_database} \
102 -DDATABASE_FULL_PATH=%{database_full_path} \
103 -DENABLE_STATISTICS=%{enable_statistics} \
104 -DENABLE_RESTRICTION=%{enable_restriction} \
105 -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
106 -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
115 #database initialization
116 %if %{?enable_database} == YES
117 mkdir -p %{buildroot}/opt/usr/dbspace
118 sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/traffic_db.sql
119 sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/firewall_db.sql
120 rm %{buildroot}/usr/share/traffic_db.sql
121 rm %{buildroot}/usr/share/firewall_db.sql
125 mkdir -p %{buildroot}/%{_localstatedir}/lib/stc
126 cp data/exceptions %{buildroot}/%{_localstatedir}/lib/stc/exceptions
128 #Systemd service file
129 mkdir -p %{buildroot}%{_libdir}/systemd/system/
130 cp resources/systemd/stc-manager.service %{buildroot}%{_libdir}/systemd/system/stc-manager.service
132 mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/
133 ln -s ../stc-manager.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
135 #DBus DAC (stc-manager.manifest enables DBus SMACK)
136 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
137 cp resources/dbus/stc-manager.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/stc-manager.conf
140 %manifest %{name}.manifest
142 %defattr(-,root,root,-)
143 %attr(500,root,root) %{_bindir}/*
145 %attr(644,root,root) %{_libdir}/systemd/system/stc-manager.service
146 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
148 %attr(755,network_fw,network_fw) /%{_localstatedir}/lib/stc
149 %attr(600,root,root) /%{_localstatedir}/lib/stc/exceptions
152 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/*
154 %if %{?enable_database} == YES
155 %config(noreplace) %attr(660, root, root) %{database_full_path}
156 %config(noreplace) %attr(660, root, root) %{database_full_path}-journal
163 %files plugin-appstatus
164 %manifest %{name}.manifest
165 %attr(644, -,-) %{_datadir}/icons/*.png
166 %attr(500,root,root) %{_libdir}/stc-plugin-appstatus.so
168 %files plugin-exception
169 %manifest %{name}.manifest
170 %attr(500,root,root) %{_libdir}/stc-plugin-exception.so
173 %manifest %{name}.manifest
174 %attr(500,root,root) %{_libdir}/stc-plugin-procfs.so
177 %manifest %{name}.manifest
178 %attr(500,root,root) %{_libdir}/stc-plugin-pcap.so
181 %manifest %{name}.manifest
182 %attr(500,root,root) %{_libdir}/stc-plugin-tether.so
184 %files plugin-monitor
185 %manifest %{name}.manifest
186 %attr(500,root,root) %{_libdir}/stc-plugin-monitor.so
188 %files plugin-firewall
189 %manifest %{name}.manifest
190 %attr(500,root,root) %{_libdir}/stc-plugin-firewall.so