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