55396af4cbd10e9a959285a5915b821fdb2a693c
[platform/core/connectivity/stc-manager.git] / packaging / stc-manager.spec
1 Name:       stc-manager
2 Summary:    STC(Smart Traffic Control) manager
3 Version:    0.0.93
4 Release:    0
5 Group:      Network & Connectivity/Other
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8
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
13
14 BuildRequires:  cmake
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)
24
25 %if %{?enable_database} == YES
26 BuildRequires:  pkgconfig(sqlite3)
27 %endif
28
29 BuildRequires:  python
30 BuildRequires:  python-xml
31
32 %if 0%{?gtests:1}
33 BuildRequires: pkgconfig(gmock)
34 %endif
35
36 %description
37 A smart traffic control manager to manage traffic counting and bandwidth limitation
38
39 %package plugin-appstatus
40 Summary: STC manager application status plugin
41 BuildRequires:  pkgconfig(bundle)
42 BuildRequires:  pkgconfig(syspopup-caller)
43 Requires:       stc-manager-plugin-monitor
44
45 %description plugin-appstatus
46 A smart traffic control manager extension for application status plugin
47
48 %package plugin-exception
49 Summary: STC manager exception list plugin
50 BuildRequires:  pkgconfig(pkgmgr-info)
51 Requires:       stc-manager-plugin-monitor
52
53 %description plugin-exception
54 A smart traffic control manager extension for exception list plugin
55
56 %package plugin-procfs
57 Summary: STC manager exception proc file system plugin
58 Requires:       stc-manager-plugin-monitor
59
60 %description plugin-procfs
61 A smart traffic control manager extension for proc file system plugin
62
63 %package plugin-pcap
64 Summary: STC manager exception packet capture plugin
65 BuildRequires:  libpcap-devel
66
67 %description plugin-pcap
68 A smart traffic control manager extension for packet capture plugin
69
70 %package plugin-tether
71 Summary: Tethering plugin for data usage of tethering clients
72 Requires:       stc-manager-plugin-monitor
73
74 %description plugin-tether
75 A smart traffic control manager extension for tethering client data usage plugin
76
77 %package plugin-monitor
78 Summary: Monitor plugin for data usage of clients
79
80 %description plugin-monitor
81 A smart traffic control manager extension for monitoring client data usage plugin
82
83 %package plugin-firewall
84 Summary: Firewall plugin for managing firewall rules
85
86 %description plugin-firewall
87 A smart traffic control manager extension for firewall plugin
88
89 %prep
90 %setup -q
91 chmod 644 %{SOURCE0}
92
93 %build
94
95 export CFLAGS="$CFLAGS -D_GNU_SOURCE"
96 export CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
97
98 %if "%{tizen_profile_name}" == "tv"
99         CFLAGS+=" -DTIZEN_TV_EXT"
100 %endif
101
102 %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
103         -DBIN_DIR=%{_bindir} \
104         -DLIB_PATH=%{_lib} \
105         -DENABLE_DATABASE=%{enable_database} \
106         -DDATABASE_FULL_PATH=%{database_full_path} \
107         -DENABLE_STATISTICS=%{enable_statistics} \
108         -DENABLE_RESTRICTION=%{enable_restriction} \
109         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
110         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
111
112 make %{?_smp_mflags}
113
114 %install
115 rm -rf %{buildroot}
116
117 %make_install
118
119 #database initialization
120 %if %{?enable_database} == YES
121         mkdir -p %{buildroot}/opt/usr/dbspace
122         sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/traffic_db.sql
123         sqlite3 %{buildroot}%{database_full_path} < %{buildroot}/usr/share/firewall_db.sql
124         rm %{buildroot}/usr/share/traffic_db.sql
125         rm %{buildroot}/usr/share/firewall_db.sql
126 %endif
127
128 #Exceptions file
129 mkdir -p %{buildroot}/%{_localstatedir}/lib/stc
130 cp data/exceptions %{buildroot}/%{_localstatedir}/lib/stc/exceptions
131
132 #Systemd service file
133 mkdir -p %{buildroot}%{_libdir}/systemd/system/
134 cp resources/systemd/stc-manager.service %{buildroot}%{_libdir}/systemd/system/stc-manager.service
135
136 mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/
137 ln -s ../stc-manager.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
138
139 #DBus DAC (stc-manager.manifest enables DBus SMACK)
140 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
141 cp resources/dbus/stc-manager.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/stc-manager.conf
142
143 mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services/
144 cp resources/dbus/net.stc-manager.service %{buildroot}%{_datadir}/dbus-1/system-services/net.stc-manager.service
145
146 %files
147 %manifest %{name}.manifest
148 %license LICENSE
149 %defattr(-,root,root,-)
150 %attr(500,root,root) %{_bindir}/*
151
152 %attr(644,root,root) %{_libdir}/systemd/system/stc-manager.service
153 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/stc-manager.service
154
155 %attr(755,network_fw,network_fw) /%{_localstatedir}/lib/stc
156 %attr(600,root,root) /%{_localstatedir}/lib/stc/exceptions
157
158 #DBus DAC
159 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/*
160 %attr(644,root,root) %{_datadir}/dbus-1/system-services/*
161
162 %if %{?enable_database} == YES
163 %config(noreplace) %attr(660, root, root) %{database_full_path}
164 %config(noreplace) %attr(660, root, root) %{database_full_path}-journal
165 %endif
166
167 %if 0%{?gtests:1}
168 %{_bindir}/gtest*
169 %endif
170
171 %files plugin-appstatus
172 %manifest %{name}.manifest
173 %attr(644, -,-) %{_datadir}/icons/*.png
174 %attr(500,root,root) %{_libdir}/stc-plugin-appstatus.so
175
176 %files plugin-exception
177 %manifest %{name}.manifest
178 %attr(500,root,root) %{_libdir}/stc-plugin-exception.so
179
180 %files plugin-procfs
181 %manifest %{name}.manifest
182 %attr(500,root,root) %{_libdir}/stc-plugin-procfs.so
183
184 %files plugin-pcap
185 %manifest %{name}.manifest
186 %attr(500,root,root) %{_libdir}/stc-plugin-pcap.so
187
188 %files plugin-tether
189 %manifest %{name}.manifest
190 %attr(500,root,root) %{_libdir}/stc-plugin-tether.so
191
192 %files plugin-monitor
193 %manifest %{name}.manifest
194 %attr(500,root,root) %{_libdir}/stc-plugin-monitor.so
195
196 %files plugin-firewall
197 %manifest %{name}.manifest
198 %attr(500,root,root) %{_libdir}/stc-plugin-firewall.so