Merge "Fix a coverity for identical code" into tizen
[platform/core/connectivity/net-config.git] / packaging / net-config.spec
1 Name:           net-config
2 Summary:        TIZEN Network Configuration service
3 Version:        1.1.129
4 Release:        3
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-2.0)
19 %if 0%{?gtests:1}
20 BuildRequires:  pkgconfig(gmock)
21 BuildRequires:  pkgconfig(capi-network-wifi-manager)
22 BuildRequires:  pkgconfig(capi-network-wifi-direct)
23 BuildRequires:  pkgconfig(capi-network-softap)
24 %endif
25 Requires:               vconf
26 Requires:               connman
27 Requires:               systemd
28 Requires:               security-config
29 Requires:               iproute2
30 Requires:               iptables
31 Requires(post):         systemd
32 Requires(preun):        systemd
33 Requires(postun):       systemd
34 Provides:       %{name}-profile_common = %{version}-%{release}
35 Provides:       %{name}-profile_mobile = %{version}-%{release}
36 Provides:       %{name}-profile_wearable = %{version}-%{release}
37 Provides:       %{name}-profile_ivi = %{version}-%{release}
38
39 %description
40 TIZEN Network Configuration service
41
42 %package profile_tv
43 Summary:        net-config extension for TV profile
44 Requires:       %{name} = %{version}-%{release}
45 %description profile_tv
46 TIZEN Network Configuration service extension for Tizen TV profile.
47
48 %package profile_wearable
49 Summary:        net-config extension for wearable profile
50 Requires:       %{name} = %{version}-%{release}
51 %description profile_wearable
52 TIZEN Network Configuration service extension for Tizen wearable profile.
53
54 %package plugin-headed
55 Summary:        net-config extension for headed profile
56 BuildRequires:  pkgconfig(bundle)
57 BuildRequires:  pkgconfig(eventsystem)
58 BuildRequires:  pkgconfig(alarm-service)
59 BuildRequires:  pkgconfig(syspopup-caller)
60 BuildRequires:  pkgconfig(capi-appfw-application)
61 Requires:       %{name} = %{version}-%{release}
62 %description plugin-headed
63 TIZEN Network Configuration service extension for headed profile.
64
65 %package plugin-telephony
66 Summary:        net-config extension for telephony FW
67 BuildRequires:  pkgconfig(tapi)
68 Requires:       %{name} = %{version}-%{release}
69 %description plugin-telephony
70 TIZEN Network Configuration service extension for telephony FW.
71
72 %prep
73 %setup -q
74
75 %build
76 # Build for wearable
77 cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
78         -DTIZEN_WLAN_PASSPOINT=1 \
79         -DTIZEN_WLAN_USE_P2P_INTERFACE=1 \
80         -DTIZEN_DEBUG_ENABLE=1 \
81         -DTIZEN_WEARABLE=1 \
82         -DTIZEN_CAPTIVE_PORTAL=1 \
83         -DLIB_PATH=%{_lib} \
84         -DBIN_DIR=%{_bindir} \
85         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
86         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
87         .
88
89 %make_install
90 mv %{buildroot}%{_bindir}/net-config %{_builddir}/%{name}-%{version}/net-config.wearable
91
92 make %{?_smp_mflags}
93
94
95 # Build for common packages
96 cmake -DCMAKE_INSTALL_PREFIX=%{_prefix} \
97         -DTIZEN_WLAN_PASSPOINT=1 \
98         -DTIZEN_WLAN_USE_P2P_INTERFACE=1 \
99         -DTIZEN_DEBUG_ENABLE=1 \
100         -DTIZEN_WEARABLE=0 \
101         -DTIZEN_CAPTIVE_PORTAL=0 \
102         -DLIB_PATH=%{_lib} \
103         -DBIN_DIR=%{_bindir} \
104         -DBUILD_GTESTS=%{?gtests:1}%{!?gtests:0} \
105         -DBUILD_GCOV=%{?gcov:1}%{!?gcov:0} \
106         .
107
108 make %{?_smp_mflags}
109
110
111 %install
112 %make_install
113
114 #Systemd service file
115 mkdir -p %{buildroot}%{_libdir}/systemd/system/
116 %if "%{?_lib}" == "lib64"
117 mkdir -p %{buildroot}%{_unitdir}
118 %endif
119
120 cp resources/usr/lib/systemd/system/net-config_tv.service %{buildroot}%{_libdir}/systemd/system/net-config.service.tv
121 mkdir -p %{buildroot}%{_libdir}/udev/rules.d/
122 cp resources/usr/lib/udev/rules.d/99-wifiusb-dev.rules %{buildroot}%{_libdir}/udev/rules.d/99-wifiusb-dev.rules
123 %if "%{?_lib}" == "lib64"
124 cp resources/usr/lib/systemd/system/net-config_tv.service %{buildroot}%{_unitdir}/net-config.service.tv
125 %endif
126 cp resources/usr/lib/systemd/system/net-config.service %{buildroot}%{_libdir}/systemd/system/net-config.service
127 %if "%{?_lib}" == "lib64"
128 cp resources/usr/lib/systemd/system/net-config.service %{buildroot}%{_unitdir}/net-config.service
129 %endif
130
131 mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/
132 ln -s ../net-config.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/net-config.service
133 %if "%{?_lib}" == "lib64"
134 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
135 ln -s ../net-config.service %{buildroot}%{_unitdir}/multi-user.target.wants/net-config.service
136 %endif
137
138 mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services/
139 cp resources/usr/share/dbus-1/system-services/net.netconfig.service %{buildroot}%{_datadir}/dbus-1/system-services/net.netconfig.service
140
141 mkdir -p %{buildroot}%{TZ_SYS_ETC}
142 cp resources/etc/resolv.conf %{buildroot}%{TZ_SYS_ETC}/resolv.conf
143
144 mkdir -p %{buildroot}%{_sysconfdir}
145 ln -s %{TZ_SYS_ETC}/resolv.conf %{buildroot}%{_sysconfdir}/resolv.conf
146
147 #DBus DAC (net-config.manifest enables DBus SMACK)
148 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d
149 cp resources/etc/dbus-1/system.d/net-config.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/net-config.conf
150
151 #log dump
152 mkdir -p %{buildroot}/opt/etc/dump.d/module.d/
153 cp resources/opt/etc/dump.d/module.d/network_dump.sh %{buildroot}/opt/etc/dump.d/module.d/network_dump.sh
154 mkdir -p %{buildroot}/opt/var/lib/net-config/
155 cp resources/opt/etc/dump.d/module.d/network_dump.sh %{buildroot}/opt/var/lib/net-config/network_dump.sh
156
157 #softreset scripts
158 mkdir -p %{buildroot}/usr/system/RestoreDir/softreset
159 cp resources/usr/system/RestoreDir/softreset/network_softreset.sh %{buildroot}/usr/system/RestoreDir/softreset/network_softreset.sh
160
161 mv %{_builddir}/%{name}-%{version}/net-config.wearable %{buildroot}%{_bindir}
162
163 %post
164 chsmack -a 'System::Shared' %{_sysconfdir}/resolv.conf
165 chsmack -a 'System::Shared' %{TZ_SYS_ETC}/resolv.conf
166
167 #Network logs
168 mkdir -p /opt/usr/data/network
169 chmod 755 /opt/usr/data/network
170 chown network_fw:network_fw /opt/usr/data/network
171 #chsmack -a 'System' /opt/usr/data/network
172
173 #Add net-config.service to systemd extra default dependency ignore list
174 mkdir -p %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
175 ln -sf %{_libdir}/systemd/system/net-config.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
176 %if "%{?_lib}" == "lib64"
177 ln -sf %{_unitdir}/net-config.service %{_sysconfdir}/systemd/default-extra-dependencies/ignore-units.d/
178 %endif
179
180 #systemctl daemon-reload
181 #systemctl restart net-config.service
182
183 %preun
184 #systemctl stop net-config.service
185
186 %postun
187 #systemctl daemon-reload
188
189
190 %files
191 %manifest net-config.manifest
192 %attr(500,network_fw,network_fw) %{_bindir}/*
193 %attr(644,network_fw,network_fw) %{_sysconfdir}/resolv.conf
194 %attr(644,network_fw,network_fw) %{TZ_SYS_ETC}/resolv.conf
195 %attr(644,root,root) %{_datadir}/dbus-1/system-services/*
196 #DBus DAC
197 %attr(644,root,root) %{_sysconfdir}/dbus-1/system.d/*
198 %attr(644,root,root) %{_libdir}/systemd/system/net-config.service
199 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/net-config.service
200 %attr(644,root,root) /usr/lib/tmpfiles.d/security-network-config.conf
201 %if "%{?_lib}" == "lib64"
202 %attr(644,root,root) %{_unitdir}/net-config.service
203 %attr(644,root,root) %{_unitdir}/multi-user.target.wants/net-config.service
204 %endif
205 %license LICENSE
206 %attr(500,root,root) /opt/etc/dump.d/module.d/network_dump.sh
207 %attr(500,network_fw,network_fw) /opt/var/lib/net-config/network_dump.sh
208 %if 0%{?gtests:1}
209 %{_bindir}/gtest*
210 %endif
211
212 #### tv profile ####
213 %post profile_tv
214 mv %{_libdir}/systemd/system/net-config.service.tv %{_libdir}/systemd/system/net-config.service
215 %if "%{?_lib}" == "lib64"
216 mv %{_unitdir}/net-config.service.tv %{_unitdir}/net-config.service
217 %endif
218
219 %files profile_tv
220 %attr(644,network_fw,network_fw) %{_libdir}/udev/rules.d/99-wifiusb-dev.rules
221 %attr(644,root,root) %{_libdir}/systemd/system/net-config.service.tv
222 %if "%{?_lib}" == "lib64"
223 %attr(644,root,root) %{_unitdir}/net-config.service.tv
224 %endif
225
226 #### wearable profile ####
227 %preun profile_wearable
228 rm %{_bindir}/net-config
229
230 %post profile_wearable
231 pushd %{_bindir}
232 mv net-config.wearable net-config
233
234 %files profile_wearable
235 %attr(644,root,root) %{_bindir}/net-config.wearable
236 %attr(644,network_fw,network_fw) /usr/system/RestoreDir/softreset/network_softreset.sh
237
238 #### plugin ####
239 %files plugin-headed
240 %manifest net-config.manifest
241 %attr(500,network_fw,network_fw) %{_libdir}/net-config-plugin-headed.so
242
243 %files plugin-telephony
244 %manifest net-config.manifest
245 %attr(500,network_fw,network_fw) %{_libdir}/net-config-plugin-telephony.so