Remove Profile Build Dependency (1/2): do it at runtime
[platform/upstream/connman.git] / packaging / connman.spec
1 %bcond_with     connman_openconnect
2 %bcond_without  connman_openvpn
3 %bcond_without  connman_vpnd
4
5 Name:           connman
6 Version:        1.29
7 Release:        20
8 License:        GPL-2.0+
9 Summary:        Connection Manager
10 Url:            http://connman.net
11 Group:          Network & Connectivity/Connection Management
12 Source0:        %{name}-%{version}.tar.gz
13 BuildRequires:  systemd-devel
14 BuildRequires:  pkgconfig(dbus-1)
15 BuildRequires:  pkgconfig(glib-2.0)
16 BuildRequires:  pkgconfig(libiptc)
17 BuildRequires:  pkgconfig(xtables)
18 BuildRequires:  pkgconfig(libsmack)
19 BuildRequires:  pkgconfig(tpkp-gnutls)
20 BuildRequires:  pkgconfig(libsystemd-daemon)
21 %if %{with connman_openconnect}
22 BuildRequires:  openconnect
23 %endif
24 %if %{with connman_openvpn}
25 BuildRequires:  openvpn
26 %endif
27 BuildRequires:  ca-certificates-devel
28 BuildRequires:  readline-devel
29 #%systemd_requires
30 Requires:       iptables
31 Requires:         systemd
32 Requires(post):   systemd
33 Requires(preun):  systemd
34 Requires(postun): systemd
35 Requires:         net-config
36
37 %define upgrade_script_filename 500.connman_upgrade.sh
38 %define upgrade_script_path /usr/share/upgrade/scripts
39
40 %description
41 Connection Manager provides a daemon for managing Internet connections
42 within embedded devices running the Linux operating system.
43
44 %if %{with connman_openconnect}
45 %package plugin-openconnect
46 Summary:        Openconnect Support for Connman
47 Requires:       %{name} = %{version}
48 Requires:       openconnect
49
50 %description plugin-openconnect
51 Openconnect Support for Connman.
52 %endif
53
54 %if %{with connman_openvpn}
55 %package plugin-openvpn
56 Summary:        Openvpn Support for Connman
57 Requires:       %{name} = %{version}
58 Requires:       openvpn
59
60 %description plugin-openvpn
61 OpenVPN support for Connman.
62 %endif
63
64 %if %{with connman_vpnd}
65 %package connman-vpnd
66 Summary:        VPN Support for Connman
67 #BuildRequires:  %{name} = %{version}
68 Requires:       %{name} = %{version}
69
70 %description connman-vpnd
71 Provides VPN support for Connman
72 %endif
73
74 %package test
75 Summary:        Test Scripts for Connection Manager
76 Group:          Development/Tools
77 Requires:       %{name} = %{version}
78 Requires:       dbus-python
79 Requires:       pygobject
80 Requires:       python-xml
81
82 %description test
83 Scripts for testing Connman and its functionality
84
85 %package devel
86 Summary:        Development Files for connman
87 Group:          Development/Tools
88 Requires:       %{name} = %{version}
89
90 %description devel
91 Header files and development files for connman.
92
93 %prep
94 %setup -q
95
96
97 %build
98 CFLAGS+=" -DTIZEN_EXT -lsmack -Werror"
99 CFLAGS+=" -DTIZEN_SYS_CA_BUNDLE=\"%TZ_SYS_RO_CA_BUNDLE\""
100
101 %if %{with connman_vpnd}
102 VPN_CFLAGS+=" -DTIZEN_EXT -lsmack -Werror"
103 %endif
104
105 chmod +x bootstrap
106 ./bootstrap
107 %configure \
108             --sysconfdir=/etc \
109             --enable-client \
110             --enable-pacrunner \
111             --enable-wifi=builtin \
112 %if %{with connman_openconnect}
113             --enable-openconnect \
114 %endif
115 %if %{with connman_openvpn}
116             --enable-openvpn \
117 %endif
118 %if 0%{?enable_connman_features}
119             %connman_features \
120 %endif
121             --disable-ofono \
122             --enable-telephony=builtin \
123             --enable-test \
124                         --enable-loopback \
125                         --enable-ethernet \
126             --with-systemdunitdir=%{_libdir}/systemd/system \
127             --enable-pie \
128                         --disable-wispr
129
130 make %{?_smp_mflags}
131
132 %install
133 %make_install
134
135 #Systemd service file
136 mkdir -p %{buildroot}%{_libdir}/systemd/system/
137 %if "%{?_lib}" == "lib64"
138 mkdir -p %{buildroot}%{_unitdir}
139 %endif
140
141 %if "%{profile}" == "tv"
142 cp src/connman_tv.service %{buildroot}%{_libdir}/systemd/system/connman.service
143 %if "%{?_lib}" == "lib64"
144 cp src/connman_tv.service %{buildroot}%{_unitdir}/connman.service
145 cp vpn/connman-vpn.service %{buildroot}%{_unitdir}/connman-vpn.service
146 %endif
147 %else
148 %if "%{?_lib}" == "lib64"
149 cp src/connman.service %{buildroot}%{_unitdir}/connman.service
150 cp vpn/connman-vpn.service %{buildroot}%{_unitdir}/connman-vpn.service
151 %endif
152 %endif
153
154 mkdir -p %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants
155 ln -s ../connman.service %{buildroot}%{_libdir}/systemd/system/multi-user.target.wants/connman.service
156 %if "%{?_lib}" == "lib64"
157 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
158 ln -s ../connman.service %{buildroot}%{_unitdir}/multi-user.target.wants/connman.service
159 %endif
160
161 #Systemd socket file for DNS proxy
162 %if "%{?_lib}" == "lib64"
163 cp src/connman.socket %{buildroot}%{_unitdir}/connman.socket
164 mkdir -p %{buildroot}%{_unitdir}/sockets.target.wants
165 ln -s ../connman.socket %{buildroot}%{_unitdir}/sockets.target.wants/connman.socket
166 %else
167 cp src/connman.socket %{buildroot}%{_libdir}/systemd/system/connman.socket
168 mkdir -p %{buildroot}%{_libdir}/systemd/system/sockets.target.wants
169 ln -s ../connman.socket %{buildroot}%{_libdir}/systemd/system/sockets.target.wants/connman.socket
170 %endif
171
172 mkdir -p %{buildroot}/%{_localstatedir}/lib/connman
173 cp resources/var/lib/connman/settings %{buildroot}/%{_localstatedir}/lib/connman/settings
174 mkdir -p %{buildroot}%{_datadir}/dbus-1/system-services
175 cp resources/usr/share/dbus-1/system-services/net.connman.service %{buildroot}%{_datadir}/dbus-1/system-services/net.connman.service
176 mkdir -p %{buildroot}/etc/connman
177
178 %if "%{profile}" == "ivi"
179 cp src/main_ivi.conf %{buildroot}/etc/connman/main.conf
180 %else
181 cp src/main.conf %{buildroot}/etc/connman/main.conf
182 %endif
183
184 rm %{buildroot}%{_sysconfdir}/dbus-1/system.d/*.conf
185 mkdir -p %{buildroot}%{_sysconfdir}/dbus-1/system.d/
186 cp src/connman.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/
187
188 #License
189 mkdir -p %{buildroot}%{_datadir}/license
190 cp COPYING %{buildroot}%{_datadir}/license/connman
191
192 %if %{with connman_vpnd}
193 cp vpn/vpn-dbus.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf
194 %endif
195
196 #OS Upgrade
197 mkdir -p %{buildroot}%{upgrade_script_path}
198 cp -f scripts/%{upgrade_script_filename} %{buildroot}%{upgrade_script_path}
199
200 %post
201 chsmack -a 'System' /%{_localstatedir}/lib/connman
202 chsmack -a 'System' /%{_localstatedir}/lib/connman/settings
203
204 %preun
205
206 %postun
207 systemctl daemon-reload
208
209 %docs_package
210
211 %files
212 %manifest connman.manifest
213 %attr(500,root,root) %{_sbindir}/*
214 %attr(500,root,root) %{_bindir}/connmanctl
215 %attr(600,root,root) /%{_localstatedir}/lib/connman/settings
216 #%{_libdir}/connman/plugins/*.so
217 %attr(644,root,root) %{_datadir}/dbus-1/system-services/*
218 #%{_datadir}/dbus-1/services/*
219 %{_sysconfdir}/dbus-1/system.d/*
220 %attr(644,root,root) %{_sysconfdir}/connman/main.conf
221 %{_sysconfdir}/dbus-1/system.d/*.conf
222 %attr(644,root,root) %{_libdir}/systemd/system/connman.service
223 %attr(644,root,root) %{_libdir}/systemd/system/multi-user.target.wants/connman.service
224 %attr(644,root,root) %{_libdir}/systemd/system/connman-vpn.service
225 %if "%{?_lib}" == "lib64"
226 %attr(644,root,root) %{_unitdir}/connman.service
227 %attr(644,root,root) %{_unitdir}/multi-user.target.wants/connman.service
228 %attr(644,root,root) %{_unitdir}/connman-vpn.service
229 %attr(644,root,root) %{_unitdir}/connman.socket
230 %attr(644,root,root) %{_unitdir}/sockets.target.wants/connman.socket
231 %else
232 %attr(644,root,root) %{_libdir}/systemd/system/connman.socket
233 %attr(644,root,root) %{_libdir}/systemd/system/sockets.target.wants/connman.socket
234 %endif
235 %{_datadir}/license/connman
236 %{upgrade_script_path}/%{upgrade_script_filename}
237
238 %files test
239 %manifest connman.manifest
240 %{_libdir}/%{name}/test/*
241
242 %files devel
243 %manifest connman.manifest
244 %{_includedir}/*
245 %{_libdir}/pkgconfig/*.pc
246
247 %if %{with connman_openconnect}
248 %files plugin-openconnect
249 %manifest %{name}.manifest
250 %{_libdir}/connman/plugins-vpn/openconnect.so
251 %{_libdir}/connman/scripts/openconnect-script
252 %{_datadir}/dbus-1/system-services/net.connman.vpn.service
253 %endif
254
255 %if %{with connman_openvpn}
256 %files plugin-openvpn
257 %manifest %{name}.manifest
258 %{_libdir}/%{name}/plugins-vpn/openvpn.so
259 %{_libdir}/%{name}/scripts/openvpn-script
260 %{_datadir}/dbus-1/system-services/net.connman.vpn.service
261 %endif
262
263 %if %{with connman_vpnd}
264 %files connman-vpnd
265 %manifest %{name}.manifest
266 #%{_sbindir}/connman-vpnd
267 %dir %{_libdir}/%{name}
268 %dir %{_libdir}/%{name}/scripts
269 %dir %{_libdir}/%{name}/plugins-vpn
270 %config %{_sysconfdir}/dbus-1/system.d/connman-vpn-dbus.conf
271 %{_datadir}/dbus-1/system-services/net.connman.vpn.service
272 %endif
273
274