Fix resource leak
[platform/core/connectivity/net-config.git] / packaging / net-config.spec
1 Name:           net-config
2 Summary:        TIZEN Network Configuration service
3 Version:        1.2.14
4 Release:        1
5 Group:          System/Network
6 License:        Apache-2.0
7 Source0:        %{name}-%{version}.tar.gz
8 BuildRequires:  pkgconfig(dlog)
9 BuildRequires:  pkgconfig(vconf)
10 BuildRequires:  pkgconfig(gio-2.0)
11 BuildRequires:  pkgconfig(glib-2.0)
12 BuildRequires:  pkgconfig(capi-system-info)
13 BuildRequires:  pkgconfig(capi-vpnsvc)
14 BuildRequires:  cmake
15 BuildRequires:  pkgconfig(sqlite3)
16 BuildRequires:  pkgconfig(libtzplatform-config)
17 BuildRequires:  pkgconfig(key-manager)
18 BuildRequires:  pkgconfig(libnl-3.0)
19 BuildRequires:  pkgconfig(libnl-genl-3.0)
20 BuildRequires:  pkgconfig(hal-api-wifi)
21 BuildRequires:  pkgconfig(libcurl)
22 Requires:               vconf
23 Requires:               connman
24 Requires:               systemd
25 Requires:               security-config
26 Requires:               iproute2
27 Requires:               iptables
28 Requires:               tcpdump
29 Requires(post):         systemd
30 Requires(preun):        systemd
31 Requires(postun):       systemd
32 Provides:       %{name}-profile_common = %{version}-%{release}
33 Provides:       %{name}-profile_mobile = %{version}-%{release}
34 Provides:       %{name}-profile_wearable = %{version}-%{release}
35 Provides:       %{name}-profile_ivi = %{version}-%{release}
36 Provides:       %{name}-profile_robot = %{version}-%{release}
37
38 %description
39 TIZEN Network Configuration service
40
41 %package profile_tv
42 Summary:        net-config extension for TV profile
43 Requires:       %{name} = %{version}-%{release}
44 %description profile_tv
45 TIZEN Network Configuration service extension for Tizen TV profile.
46
47 %package profile_wearable
48 Summary:        net-config extension for wearable profile
49 Requires:       %{name} = %{version}-%{release}
50 %description profile_wearable
51 TIZEN Network Configuration service extension for Tizen wearable profile.
52
53 %package profile_robot
54 Summary:        net-config extension for robot profile
55 Requires:       %{name} = %{version}-%{release}
56 %description profile_robot
57 TIZEN Network Configuration service extension for Tizen robot profile.
58
59 %package plugin-headed
60 Summary:        net-config extension for headed profile
61 BuildRequires:  pkgconfig(bundle)
62 BuildRequires:  pkgconfig(eventsystem)
63 BuildRequires:  pkgconfig(alarm-service)
64 BuildRequires:  pkgconfig(syspopup-caller)
65 BuildRequires:  pkgconfig(capi-appfw-application)
66 Requires:       %{name} = %{version}-%{release}
67 %description plugin-headed
68 TIZEN Network Configuration service extension for headed profile.
69
70 %package plugin-telephony
71 Summary:        net-config extension for telephony FW
72 BuildRequires:  pkgconfig(tapi)
73 Requires:       %{name} = %{version}-%{release}
74 %description plugin-telephony
75 TIZEN Network Configuration service extension for telephony FW.
76
77 %package plugin-stc
78 Summary:        net-config extension for STC FW
79 BuildRequires:  pkgconfig(capi-network-stc)
80 Requires:       %{name} = %{version}-%{release}
81 %description plugin-stc
82 TIZEN Network Configuration service extension for STC FW.
83
84 %package plugin-battery
85 Summary:        net-config extension for battery FW
86 Requires:       %{name} = %{version}-%{release}
87 %description plugin-battery
88 TIZEN Network Configuration service extension for battery FW.
89
90 %package haltests
91 Summary:        net-config extension for HAL test
92 BuildRequires:  pkgconfig(gmock)
93 BuildRequires:  pkgconfig(capi-network-wifi-manager)
94 BuildRequires:  pkgconfig(capi-network-wifi-direct)
95 BuildRequires:  pkgconfig(capi-network-softap)
96 Requires:       %{name} = %{version}-%{release}
97 %description haltests
98 TIZEN Network Configuration service extension for HAL test.
99
100 %ifarch arm armv7l aarch64
101 %package plugin-online-monitor
102 Summary:        net-config extension for advanced online monitoring
103 BuildRequires:  pkgconfig(libbpf)
104 Requires:       libbpf
105 Requires:       %{name} = %{version}-%{release}
106 %description plugin-online-monitor
107 TIZEN Network Configuration service extension for advanced online monitoring.
108 %endif
109
110 %prep
111 %setup -q
112
113 %build
114 # Build for wearable
115 cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
116         -DTIZEN_WLAN_PASSPOINT=1 \
117         -DTIZEN_WLAN_USE_P2P_INTERFACE=1 \
118         -DTIZEN_DEBUG_ENABLE=0 \
119         -DTIZEN_WEARABLE=1 \
120         -DTIZEN_CAPTIVE_PORTAL=1 \
121 %if "%{?_lib}" == "lib64"
122         -DTIZEN_ARCH_64=1 \
123 %endif
124 %ifarch arm armv7l aarch64
125         -DTIZEN_ARM_ARCH=1 \
126 %endif
127         -DLIB_PATH=%{_lib} \
128         -DBIN_DIR=%{_bindir} \
129         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
130         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
131         .
132
133 %make_install
134 mv %{buildroot}%{_bindir}/net-config %{_builddir}/%{name}-%{version}/net-config.wearable
135
136 make %{?_smp_mflags}
137
138
139 # Build for common packages
140 cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
141         -DTIZEN_WLAN_PASSPOINT=1 \
142         -DTIZEN_WLAN_USE_P2P_INTERFACE=1 \
143         -DTIZEN_DEBUG_ENABLE=0 \
144         -DTIZEN_WEARABLE=0 \
145         -DTIZEN_CAPTIVE_PORTAL=0 \
146 %if "%{?_lib}" == "lib64"
147         -DTIZEN_ARCH_64=1 \
148 %endif
149         -DLIB_PATH=%{_lib} \
150         -DBIN_DIR=%{_bindir} \
151         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
152         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
153         .
154
155 make %{?_smp_mflags}
156
157 %install
158 %make_install
159
160 #Settings file
161 mkdir -p %{buildroot}/%{_localstatedir}/lib/net-config
162 cp resources/var/lib/net-config/settings %{buildroot}/%{_localstatedir}/lib/net-config/settings
163 cp resources/var/lib/net-config/settings-robot %{buildroot}/%{_localstatedir}/lib/net-config/settings-robot
164
165 #Systemd service file
166 mkdir -p %{buildroot}%{_unitdir}
167
168 mkdir -p %{buildroot}%{_libdir}/udev/rules.d/
169 cp resources/usr/lib/udev/rules.d/99-wifiusb-dev.rules %{buildroot}%{_libdir}/udev/rules.d/99-wifiusb-dev.rules
170 cp resources/usr/lib/systemd/system/net-config_tv.service %{buildroot}%{_unitdir}/net-config.service.tv
171 cp resources/usr/lib/systemd/system/net-config.service %{buildroot}%{_unitdir}/net-config.service
172
173 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
174 ln -s ../net-config.service %{buildroot}%{_unitdir}/multi-user.target.wants/net-config.service
175
176 mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services/
177 cp resources/usr/share/dbus-1/system-services/net.netconfig.service %{buildroot}%{_datadir}/dbus-1/system-services/net.netconfig.service
178
179 mkdir -p %{buildroot}%{TZ_SYS_ETC}
180 cp resources/etc/resolv.conf %{buildroot}%{TZ_SYS_ETC}/resolv.conf
181
182 mkdir -p %{buildroot}%{_sysconfdir}
183 ln -s %{TZ_SYS_ETC}/resolv.conf %{buildroot}%{_sysconfdir}/resolv.conf
184
185 #DBus DAC (net-config.manifest enables DBus SMACK)
186 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
187 cp resources/etc/dbus-1/system.d/net-config.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/net-config.conf
188 cp resources/etc/dbus-1/system.d/net-config-robot.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/net-config-robot.conf
189
190 #log dump
191 mkdir -p %{buildroot}/opt/etc/dump.d/module.d/
192 cp resources/opt/etc/dump.d/module.d/network_dump.sh %{buildroot}/opt/etc/dump.d/module.d/network_dump.sh
193 mkdir -p %{buildroot}/opt/var/lib/net-config/
194 cp resources/opt/etc/dump.d/module.d/network_dump.sh %{buildroot}/opt/var/lib/net-config/network_dump.sh
195 cp resources/opt/etc/dump.d/module.d/network_log_dump.sh %{buildroot}/opt/var/lib/net-config/network_log_dump.sh
196
197 #softreset scripts
198 mkdir -p %{buildroot}/usr/system/RestoreDir/softreset
199 cp resources/usr/system/RestoreDir/softreset/network_softreset.sh %{buildroot}/usr/system/RestoreDir/softreset/network_softreset.sh
200
201 mv %{_builddir}/%{name}-%{version}/net-config.wearable %{buildroot}%{_bindir}
202
203 %ifarch arm armv7l aarch64
204 #online-monitor
205 cp plugin/online-monitor/online_monitor.conf %{buildroot}/%{_localstatedir}/lib/net-config
206 cp plugin/online-monitor/common_info_dump.sh %{buildroot}/opt/var/lib/net-config/
207 cp plugin/online-monitor/supp_log_dump.sh %{buildroot}/opt/var/lib/net-config/
208 cp plugin/online-monitor/bpf_code %{buildroot}/opt/var/lib/net-config/
209 %endif
210
211 %post
212 chsmack -a 'System::Shared' %{_sysconfdir}/resolv.conf
213 chsmack -a 'System::Shared' %{TZ_SYS_ETC}/resolv.conf
214
215 #Network logs
216 mkdir -p /opt/usr/data/network
217 chmod 755 /opt/usr/data/network
218 chown network_fw:network_fw /opt/usr/data/network
219 #chsmack -a 'System' /opt/usr/data/network
220
221 #systemctl daemon-reload
222 #systemctl restart net-config.service
223
224 %preun
225 #systemctl stop net-config.service
226
227 %postun
228 #systemctl daemon-reload
229
230
231 %files
232 %manifest net-config.manifest
233 %attr(500,network_fw,network_fw) %{_bindir}/net-config
234 %attr(644,network_fw,network_fw) %{_sysconfdir}/resolv.conf
235 %attr(644,network_fw,network_fw) %{TZ_SYS_ETC}/resolv.conf
236 %attr(644,root,root) %{_libdir}/udev/rules.d/99-wifiusb-dev.rules
237 %attr(644,root,root) %{_datadir}/dbus-1/system-services/*
238 #DBus DAC
239 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/*
240 %exclude %{_sysconfdir}/dbus-1/system.d/net-config-robot.conf
241 %attr(644,root,root) /usr/lib/tmpfiles.d/security-network-config.conf
242 %attr(644,root,root) %{_unitdir}/net-config.service
243 %attr(644,root,root) %{_unitdir}/multi-user.target.wants/net-config.service
244 %attr(644,root,root) /var/lib/net-config/settings
245 %license LICENSE
246 %attr(750,network_fw,network_fw) /opt/etc/dump.d/module.d/network_dump.sh
247 %attr(750,network_fw,network_fw) /opt/var/lib/net-config/network_dump.sh
248 %attr(750,network_fw,network_fw) /opt/var/lib/net-config/network_log_dump.sh
249
250 #### tv profile ####
251 %post profile_tv
252 mv %{_unitdir}/net-config.service.tv %{_unitdir}/net-config.service
253
254 %files profile_tv
255 %attr(644,root,root) %{_libdir}/udev/rules.d/99-wifiusb-dev.rules
256 %attr(644,root,root) %{_unitdir}/net-config.service.tv
257
258 #### wearable profile ####
259 %preun profile_wearable
260 rm %{_bindir}/net-config
261
262 %post profile_wearable
263 pushd %{_bindir}
264 mv net-config.wearable net-config
265
266 %files profile_wearable
267 %attr(500,network_fw,network_fw) %{_bindir}/net-config.wearable
268 %attr(644,network_fw,network_fw) /usr/system/RestoreDir/softreset/network_softreset.sh
269
270 #### robot profile ####
271 %post profile_robot
272 mv /var/lib/net-config/settings-robot /var/lib/net-config/settings
273 mv %{_sysconfdir}/dbus-1/system.d/net-config-robot.conf %{_sysconfdir}/dbus-1/system.d/net-config.conf
274
275 %files profile_robot
276 %manifest net-config.manifest
277 %attr(644,root,root) /var/lib/net-config/settings-robot
278 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/net-config-robot.conf
279
280
281 #### plugin ####
282 %files plugin-headed
283 %manifest net-config.manifest
284 %attr(500,network_fw,network_fw) %{_libdir}/net-config-plugin-headed.so
285
286 %files plugin-telephony
287 %manifest net-config.manifest
288 %attr(500,network_fw,network_fw) %{_libdir}/net-config-plugin-telephony.so
289
290 %files plugin-stc
291 %manifest net-config.manifest
292 %attr(500,network_fw,network_fw) %{_libdir}/net-config-plugin-stc.so
293
294 %files plugin-battery
295 %manifest net-config.manifest
296 %attr(500,network_fw,network_fw) %{_libdir}/net-config-plugin-battery.so
297
298 %files haltests
299 %manifest net-config.manifest
300 %{_bindir}/hal/*haltests
301
302 %ifarch arm armv7l aarch64
303 %files plugin-online-monitor
304 %manifest net-config.manifest
305 %attr(500,network_fw,network_fw) %{_libdir}/net-config-plugin-online-monitor.so
306 %attr(644,root,root) %{_localstatedir}/lib/net-config/online_monitor.conf
307 %attr(750,network_fw,network_fw) /opt/var/lib/net-config/common_info_dump.sh
308 %attr(750,network_fw,network_fw) /opt/var/lib/net-config/supp_log_dump.sh
309 %attr(640,network_fw,network_fw) /opt/var/lib/net-config/bpf_code
310
311 %post plugin-online-monitor
312 /usr/bin/mkdir -p /opt/usr/data/network/online_mon
313 %endif