Ignore procfs status changes when pkg_id or app_id is NULL
[platform/core/connectivity/stc-manager.git] / packaging / stc-manager.spec
1 Name:       stc-manager
2 Summary:    STC(Smart Traffic Control) manager
3 Version:    0.1.6
4 Release:    0
5 Group:      Network & Connectivity/Other
6 License:    Apache-2.0
7 Source0:    %{name}-%{version}.tar.gz
8 Source1001: %{name}.manifest
9
10 BuildRequires:  cmake
11 BuildRequires:  pkgconfig(glib-2.0)
12 BuildRequires:  pkgconfig(gio-2.0)
13 BuildRequires:  pkgconfig(gobject-2.0)
14 BuildRequires:  pkgconfig(gio-unix-2.0)
15 BuildRequires:  pkgconfig(dlog)
16 BuildRequires:  pkgconfig(libtzplatform-config)
17 BuildRequires:  pkgconfig(vconf)
18 BuildRequires:  pkgconfig(capi-system-info)
19 BuildRequires:  pkgconfig(openssl1.1)
20 BuildRequires:  python
21 BuildRequires:  python-xml
22 BuildRequires:  pkgconfig(sqlite3)
23 %if 0%{?gtests:1}
24 BuildRequires: pkgconfig(gmock)
25 %endif
26
27 %description
28 A smart traffic control manager to manage traffic counting and bandwidth limitation
29
30 %package plugin-appstatus
31 Summary: STC manager application status plugin
32 BuildRequires:  pkgconfig(bundle)
33 BuildRequires:  pkgconfig(syspopup-caller)
34 Requires:       stc-manager-plugin-monitor
35
36 %description plugin-appstatus
37 A smart traffic control manager extension for application status plugin
38
39 %package plugin-exception
40 Summary: STC manager exception list plugin
41 BuildRequires:  pkgconfig(pkgmgr-info)
42 Requires:       stc-manager-plugin-monitor
43
44 %description plugin-exception
45 A smart traffic control manager extension for exception list plugin
46
47 %package plugin-procfs
48 Summary: STC manager exception proc file system plugin
49 Requires:       stc-manager-plugin-monitor
50
51 %description plugin-procfs
52 A smart traffic control manager extension for proc file system plugin
53
54 %package plugin-pcap
55 Summary: STC manager exception packet capture plugin
56 BuildRequires:  libpcap-devel
57
58 %description plugin-pcap
59 A smart traffic control manager extension for packet capture plugin
60
61 %package plugin-tether
62 Summary: Tethering plugin for data usage of tethering clients
63 Requires:       stc-manager-plugin-monitor
64
65 %description plugin-tether
66 A smart traffic control manager extension for tethering client data usage plugin
67
68 %package plugin-monitor
69 Summary: Monitor plugin for data usage of clients
70 BuildRequires:  pkgconfig(bundle)
71 BuildRequires:  pkgconfig(syspopup-caller)
72
73 %description plugin-monitor
74 A smart traffic control manager extension for monitoring client data usage plugin
75
76 %package plugin-firewall
77 Summary: Firewall plugin for managing firewall rules
78
79 %description plugin-firewall
80 A smart traffic control manager extension for firewall plugin
81
82 %if 0%{?gcov:1}
83 %package gcov
84 Summary: Coverage Data of %{name}
85 Group: System/Testing
86
87 %description gcov
88 The %{name}-gcov pacakge contains gcov objects
89 %endif
90
91 %global stc_db_file %{TZ_SYS_GLOBALUSER_DB}/.%{name}-datausage.db
92 %global stc_backup_db_file %{TZ_SYS_RO_SHARE}/stc/.%{name}-datausage.db
93
94 %prep
95 %setup -q
96 cp %{SOURCE1001} ./%{name}.manifest
97
98 %build
99 %if "%{tizen_profile_name}" == "tv"
100         CFLAGS+=" -DTIZEN_TV_EXT"
101 %endif
102
103 %if 0%{?gcov:1}
104 export CFLAGS+=" -fprofile-arcs -ftest-coverage"
105 export CXXFLAGS+=" -fprofile-arcs -ftest-coverage"
106 export LDFLAGS+=" -lgcov -Wl,--dynamic-list-data"
107 %endif
108
109 %cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} \
110         -DCMAKE_VERBOSE_MAKEFILE=OFF \
111         -DBIN_INSTALL_DIR:PATH=%{_bindir} \
112         -DSYSTEMD_DIR:PATH=%{_unitdir} \
113         -DSYSCONF_DIR:PATH=%{_sysconfdir} \
114         -DSTC_RW_DIR:PATH=%{_localstatedir}/lib/stc \
115         -DDATABASE_FULL_PATH=%{stc_db_file} \
116         -DDATABASE_BACKUP_PATH=%{stc_backup_db_file} \
117         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
118         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0}
119 make %{?_smp_mflags}
120
121 %install
122 %make_install
123
124 %if 0%{?gcov:1}
125 find .. -name '*.gcno' | tar cf %{name}-gcov.tar -T -
126 install -d -m 0755 %{buildroot}%{_datadir}/gcov/obj
127 tar xf %{name}-gcov.tar -C %{buildroot}%{_datadir}/gcov/obj
128 %endif
129
130 #database initialization
131 mkdir -p %{buildroot}%{TZ_SYS_GLOBALUSER_DB}
132 sqlite3 %{buildroot}%{stc_db_file} < res/traffic_db.sql
133 sqlite3 %{buildroot}%{stc_db_file} < res/firewall_db.sql
134 install -D -m 0660 %{buildroot}%{stc_db_file} %{buildroot}%{stc_backup_db_file}
135
136 mkdir -p %{buildroot}%{TZ_SYS_UPGRADE_SCRIPTS}
137 install -m 0755 res/500.%{name}_upgrade.sh %{buildroot}%{TZ_SYS_UPGRADE_SCRIPTS}
138
139 %install_service multi-user.target.wants %{name}.service
140
141
142 %files
143 %manifest %{name}.manifest
144 %{_bindir}/*
145 %{_unitdir}/%{name}.service
146 %{_unitdir}/multi-user.target.wants/%{name}.service
147 %{_localstatedir}/lib/stc/exceptions
148 %{_sysconfdir}/dbus-1/system.d/*
149 %{_datadir}/dbus-1/system-services/*
150 %dir %attr(0755,network_fw,network_fw) %{_localstatedir}/lib/stc
151 %config(noreplace) %{stc_db_file}*
152 %config(noreplace) %{stc_backup_db_file}
153 %{TZ_SYS_UPGRADE_SCRIPTS}/500.%{name}_upgrade.sh
154 %if 0%{?gtests:1}
155 %{_bindir}/gtest*
156 %endif
157 %license LICENSE.APLv2
158
159 %files plugin-appstatus
160 %manifest %{name}.manifest
161 %{_datadir}/icons/*.png
162 %{_libdir}/stc-plugin-appstatus.so
163 %license LICENSE.APLv2
164
165 %files plugin-exception
166 %manifest %{name}.manifest
167 %{_libdir}/stc-plugin-exception.so
168 %license LICENSE.APLv2
169
170 %files plugin-procfs
171 %manifest %{name}.manifest
172 %{_libdir}/stc-plugin-procfs.so
173 %license LICENSE.APLv2
174
175 %files plugin-pcap
176 %manifest %{name}.manifest
177 %{_libdir}/stc-plugin-pcap.so
178 %license LICENSE.APLv2
179
180 %files plugin-tether
181 %manifest %{name}.manifest
182 %{_libdir}/stc-plugin-tether.so
183 %license LICENSE.APLv2
184
185 %files plugin-monitor
186 %manifest %{name}.manifest
187 %{_libdir}/stc-plugin-monitor.so
188 %license LICENSE.APLv2
189
190 %files plugin-firewall
191 %manifest %{name}.manifest
192 %{_libdir}/stc-plugin-firewall.so
193 %license LICENSE.APLv2
194
195 %if 0%{?gcov:1}
196 %files gcov
197 %{_datadir}/gcov/*
198 %endif