summaryrefslogtreecommitdiffstats
path: root/meta/recipes-connectivity/connman
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-connectivity/connman')
-rw-r--r--meta/recipes-connectivity/connman/connman.inc1
-rw-r--r--meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch118
-rw-r--r--meta/recipes-connectivity/connman/connman/includes.patch423
-rw-r--r--meta/recipes-connectivity/connman/connman_1.33.bb5
4 files changed, 425 insertions, 122 deletions
diff --git a/meta/recipes-connectivity/connman/connman.inc b/meta/recipes-connectivity/connman/connman.inc
index f09a2de021..35a7eed0a9 100644
--- a/meta/recipes-connectivity/connman/connman.inc
+++ b/meta/recipes-connectivity/connman/connman.inc
@@ -29,7 +29,6 @@ EXTRA_OECONF += "\
29 --disable-polkit \ 29 --disable-polkit \
30 --enable-client \ 30 --enable-client \
31" 31"
32CFLAGS += "-D_GNU_SOURCE"
33 32
34PACKAGECONFIG ??= "wispr \ 33PACKAGECONFIG ??= "wispr \
35 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd','systemd', '', d)} \ 34 ${@bb.utils.contains('DISTRO_FEATURES', 'systemd','systemd', '', d)} \
diff --git a/meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch b/meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch
deleted file mode 100644
index eefc6834b7..0000000000
--- a/meta/recipes-connectivity/connman/connman/0003-Fix-header-inclusions-for-musl.patch
+++ /dev/null
@@ -1,118 +0,0 @@
1From 67645a01a2f3f52625d8dd77f2811a9e213e1b7d Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 13 Sep 2015 13:28:20 -0700
4Subject: [PATCH] Fix header inclusions for musl
5
6Signed-off-by: Khem Raj <raj.khem@gmail.com>
7---
8Upstream-Status: Pending
9
10 gweb/gresolv.c | 1 +
11 plugins/wifi.c | 3 +--
12 src/tethering.c | 2 --
13 tools/dhcp-test.c | 1 -
14 tools/dnsproxy-test.c | 1 +
15 5 files changed, 3 insertions(+), 5 deletions(-)
16
17Index: connman-1.30/gweb/gresolv.c
18===================================================================
19--- connman-1.30.orig/gweb/gresolv.c
20+++ connman-1.30/gweb/gresolv.c
21@@ -28,6 +28,7 @@
22 #include <stdarg.h>
23 #include <string.h>
24 #include <stdlib.h>
25+#include <stdio.h>
26 #include <resolv.h>
27 #include <sys/types.h>
28 #include <sys/socket.h>
29Index: connman-1.30/plugins/wifi.c
30===================================================================
31--- connman-1.30.orig/plugins/wifi.c
32+++ connman-1.30/plugins/wifi.c
33@@ -30,9 +30,8 @@
34 #include <string.h>
35 #include <sys/ioctl.h>
36 #include <sys/socket.h>
37-#include <linux/if_arp.h>
38-#include <linux/wireless.h>
39 #include <net/ethernet.h>
40+#include <linux/wireless.h>
41
42 #ifndef IFF_LOWER_UP
43 #define IFF_LOWER_UP 0x10000
44Index: connman-1.30/src/tethering.c
45===================================================================
46--- connman-1.30.orig/src/tethering.c
47+++ connman-1.30/src/tethering.c
48@@ -31,10 +31,8 @@
49 #include <stdio.h>
50 #include <sys/ioctl.h>
51 #include <net/if.h>
52-#include <linux/sockios.h>
53 #include <string.h>
54 #include <fcntl.h>
55-#include <linux/if_tun.h>
56 #include <netinet/in.h>
57 #include <linux/if_bridge.h>
58
59Index: connman-1.30/tools/dhcp-test.c
60===================================================================
61--- connman-1.30.orig/tools/dhcp-test.c
62+++ connman-1.30/tools/dhcp-test.c
63@@ -33,7 +33,6 @@
64 #include <arpa/inet.h>
65 #include <net/route.h>
66 #include <net/ethernet.h>
67-#include <linux/if_arp.h>
68
69 #include <gdhcp/gdhcp.h>
70
71Index: connman-1.30/tools/dnsproxy-test.c
72===================================================================
73--- connman-1.30.orig/tools/dnsproxy-test.c
74+++ connman-1.30/tools/dnsproxy-test.c
75@@ -27,6 +27,7 @@
76 #include <stdlib.h>
77 #include <string.h>
78 #include <unistd.h>
79+#include <stdio.h>
80 #include <arpa/inet.h>
81 #include <netinet/in.h>
82 #include <sys/types.h>
83Index: connman-1.30/configure.ac
84===================================================================
85--- connman-1.30.orig/configure.ac
86+++ connman-1.30/configure.ac
87@@ -173,6 +173,8 @@ AM_CONDITIONAL(PPTP_BUILTIN, test "${ena
88
89 AC_CHECK_HEADERS([execinfo.h])
90
91+AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]])
92+
93 AC_CHECK_HEADERS(resolv.h, dummy=yes,
94 AC_MSG_ERROR(resolver header files are required))
95 AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
96Index: connman-1.30/gdhcp/common.h
97===================================================================
98--- connman-1.30.orig/gdhcp/common.h
99+++ connman-1.30/gdhcp/common.h
100@@ -19,6 +19,7 @@
101 *
102 */
103
104+#include <config.h>
105 #include <netinet/udp.h>
106 #include <netinet/ip.h>
107
108@@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths
109 [OPTION_U32] = 4,
110 };
111
112-/* already defined within netinet/in.h if using GNU compiler */
113-#ifndef __USE_GNU
114+/* already defined within netinet/in.h if using GNU or musl libc */
115+#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR
116 struct in6_pktinfo {
117 struct in6_addr ipi6_addr; /* src/dst IPv6 address */
118 unsigned int ipi6_ifindex; /* send/recv interface index */
diff --git a/meta/recipes-connectivity/connman/connman/includes.patch b/meta/recipes-connectivity/connman/connman/includes.patch
new file mode 100644
index 0000000000..55cb187931
--- /dev/null
+++ b/meta/recipes-connectivity/connman/connman/includes.patch
@@ -0,0 +1,423 @@
1Fix various issues which cause problems under musl.
2
3Upstream-Status: Submitted
4Signed-off-by: Ross Burton <ross.burton@intel.com>
5
6From 630516bcc0233b047f65665c003201ba6e77453d Mon Sep 17 00:00:00 2001
7From: Ross Burton <ross.burton@intel.com>
8Date: Tue, 9 Aug 2016 16:22:36 +0100
9Subject: [PATCH 1/3] Use AC_USE_SYSTEM_EXTENSIONS
10
11Instead of using #define _GNU_SOURCE in some source files which causes problems
12when building with musl as more files need the define, simply use
13AC_USE_SYSTEM_EXTENSIONS in configure.ac to get it defined globally.
14---
15 configure.ac | 1 +
16 gdhcp/client.c | 1 -
17 plugins/tist.c | 1 -
18 src/backtrace.c | 1 -
19 src/inet.c | 1 -
20 src/log.c | 1 -
21 src/ntp.c | 1 -
22 src/resolver.c | 1 -
23 src/rfkill.c | 1 -
24 src/stats.c | 1 -
25 src/timezone.c | 1 -
26 tools/stats-tool.c | 1 -
27 tools/tap-test.c | 1 -
28 tools/wispr.c | 1 -
29 vpn/plugins/vpn.c | 1 -
30 15 files changed, 1 insertion(+), 14 deletions(-)
31
32diff --git a/configure.ac b/configure.ac
33index 6e66ab3..bacf5ec 100644
34--- a/configure.ac
35+++ b/configure.ac
36@@ -20,6 +20,7 @@ AC_SUBST(abs_top_srcdir)
37 AC_SUBST(abs_top_builddir)
38
39 AC_LANG_C
40+AC_USE_SYSTEM_EXTENSIONS
41
42 AC_PROG_CC
43 AM_PROG_CC_C_O
44diff --git a/gdhcp/client.c b/gdhcp/client.c
45index fbb40ab..3aeb089 100644
46--- a/gdhcp/client.c
47+++ b/gdhcp/client.c
48@@ -23,7 +23,6 @@
49 #include <config.h>
50 #endif
51
52-#define _GNU_SOURCE
53 #include <stdio.h>
54 #include <errno.h>
55 #include <unistd.h>
56diff --git a/plugins/tist.c b/plugins/tist.c
57index ad5ef79..cc2800a 100644
58--- a/plugins/tist.c
59+++ b/plugins/tist.c
60@@ -23,7 +23,6 @@
61 #include <config.h>
62 #endif
63
64-#define _GNU_SOURCE
65 #include <stdio.h>
66 #include <stdbool.h>
67 #include <stdlib.h>
68diff --git a/src/backtrace.c b/src/backtrace.c
69index 6a66c0a..4dbdda8 100644
70--- a/src/backtrace.c
71+++ b/src/backtrace.c
72@@ -24,7 +24,6 @@
73 #include <config.h>
74 #endif
75
76-#define _GNU_SOURCE
77 #include <stdio.h>
78 #include <unistd.h>
79 #include <stdlib.h>
80diff --git a/src/inet.c b/src/inet.c
81index 69ded19..81d92c2 100644
82--- a/src/inet.c
83+++ b/src/inet.c
84@@ -25,7 +25,6 @@
85 #include <config.h>
86 #endif
87
88-#define _GNU_SOURCE
89 #include <stdio.h>
90 #include <errno.h>
91 #include <unistd.h>
92diff --git a/src/log.c b/src/log.c
93index 9bae4a3..f7e82e5 100644
94--- a/src/log.c
95+++ b/src/log.c
96@@ -23,7 +23,6 @@
97 #include <config.h>
98 #endif
99
100-#define _GNU_SOURCE
101 #include <stdio.h>
102 #include <unistd.h>
103 #include <stdarg.h>
104diff --git a/src/ntp.c b/src/ntp.c
105index dd246eb..db8ae96 100644
106--- a/src/ntp.c
107+++ b/src/ntp.c
108@@ -23,7 +23,6 @@
109 #include <config.h>
110 #endif
111
112-#define _GNU_SOURCE
113 #include <errno.h>
114 #include <fcntl.h>
115 #include <unistd.h>
116diff --git a/src/resolver.c b/src/resolver.c
117index fbe4be7..ef61f92 100644
118--- a/src/resolver.c
119+++ b/src/resolver.c
120@@ -23,7 +23,6 @@
121 #include <config.h>
122 #endif
123
124-#define _GNU_SOURCE
125 #include <stdio.h>
126 #include <errno.h>
127 #include <fcntl.h>
128diff --git a/src/rfkill.c b/src/rfkill.c
129index 2bfb092..af49d12 100644
130--- a/src/rfkill.c
131+++ b/src/rfkill.c
132@@ -23,7 +23,6 @@
133 #include <config.h>
134 #endif
135
136-#define _GNU_SOURCE
137 #include <stdio.h>
138 #include <errno.h>
139 #include <fcntl.h>
140diff --git a/src/stats.c b/src/stats.c
141index 26343b1..cfcdc94 100644
142--- a/src/stats.c
143+++ b/src/stats.c
144@@ -23,7 +23,6 @@
145 #include <config.h>
146 #endif
147
148-#define _GNU_SOURCE
149 #include <errno.h>
150 #include <sys/mman.h>
151 #include <sys/types.h>
152diff --git a/src/timezone.c b/src/timezone.c
153index e346b11..8e91267 100644
154--- a/src/timezone.c
155+++ b/src/timezone.c
156@@ -23,7 +23,6 @@
157 #include <config.h>
158 #endif
159
160-#define _GNU_SOURCE
161 #include <errno.h>
162 #include <stdio.h>
163 #include <fcntl.h>
164diff --git a/tools/stats-tool.c b/tools/stats-tool.c
165index b076478..428d94b 100644
166--- a/tools/stats-tool.c
167+++ b/tools/stats-tool.c
168@@ -22,7 +22,6 @@
169 #include <config.h>
170 #endif
171
172-#define _GNU_SOURCE
173 #include <sys/mman.h>
174 #include <sys/types.h>
175 #include <sys/stat.h>
176diff --git a/tools/tap-test.c b/tools/tap-test.c
177index fdc098a..57917f5 100644
178--- a/tools/tap-test.c
179+++ b/tools/tap-test.c
180@@ -23,7 +23,6 @@
181 #include <config.h>
182 #endif
183
184-#define _GNU_SOURCE
185 #include <stdio.h>
186 #include <errno.h>
187 #include <fcntl.h>
188diff --git a/tools/wispr.c b/tools/wispr.c
189index d5f9341..e56dfc1 100644
190--- a/tools/wispr.c
191+++ b/tools/wispr.c
192@@ -23,7 +23,6 @@
193 #include <config.h>
194 #endif
195
196-#define _GNU_SOURCE
197 #include <stdio.h>
198 #include <fcntl.h>
199 #include <unistd.h>
200diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c
201index 9a42385..479c3a7 100644
202--- a/vpn/plugins/vpn.c
203+++ b/vpn/plugins/vpn.c
204@@ -23,7 +23,6 @@
205 #include <config.h>
206 #endif
207
208-#define _GNU_SOURCE
209 #include <string.h>
210 #include <fcntl.h>
211 #include <unistd.h>
212--
2132.8.1
214
215
216From b8b7878e6cb2a1ed4fcfa256f7e232511a40e3d9 Mon Sep 17 00:00:00 2001
217From: Ross Burton <ross.burton@intel.com>
218Date: Tue, 9 Aug 2016 15:37:50 +0100
219Subject: [PATCH 2/3] Check for in6_pktinfo.ipi6_addr explicitly
220
221Instead of assuming that just glibc has this structure, check for it at
222configure as musl also has it.
223
224Based on work by Khem Raj <raj.khem@gmail.com>.
225---
226 configure.ac | 2 ++
227 gdhcp/common.h | 5 +++--
228 2 files changed, 5 insertions(+), 2 deletions(-)
229
230diff --git a/configure.ac b/configure.ac
231index bacf5ec..ad00456 100644
232--- a/configure.ac
233+++ b/configure.ac
234@@ -186,6 +186,8 @@ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
235 AC_CHECK_HEADERS([execinfo.h])
236 AM_CONDITIONAL([BACKTRACE], [test "${ac_cv_header_execinfo_h}" = "yes"])
237
238+AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]])
239+
240 AC_CHECK_FUNC(signalfd, dummy=yes,
241 AC_MSG_ERROR(signalfd support is required))
242
243diff --git a/gdhcp/common.h b/gdhcp/common.h
244index 75abc18..6899499 100644
245--- a/gdhcp/common.h
246+++ b/gdhcp/common.h
247@@ -19,6 +19,7 @@
248 *
249 */
250
251+#include <config.h>
252 #include <netinet/udp.h>
253 #include <netinet/ip.h>
254
255@@ -170,8 +171,8 @@ static const uint8_t dhcp_option_lengths[] = {
256 [OPTION_U32] = 4,
257 };
258
259-/* already defined within netinet/in.h if using GNU compiler */
260-#ifndef __USE_GNU
261+/* already defined within netinet/in.h if using glibc or musl */
262+#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR
263 struct in6_pktinfo {
264 struct in6_addr ipi6_addr; /* src/dst IPv6 address */
265 unsigned int ipi6_ifindex; /* send/recv interface index */
266--
2672.8.1
268
269
270From c0726e432fa0274a2b9c70179b03df6720972816 Mon Sep 17 00:00:00 2001
271From: Ross Burton <ross.burton@intel.com>
272Date: Tue, 9 Aug 2016 15:19:23 +0100
273Subject: [PATCH 3/3] Rationalise includes
274
275gweb/gresolv.c uses snprintf() and isspace() so it should include stdio.h and
276ctype.h.
277
278tools/dnsproxy-test uses functions from stdio.h.
279
280musl warns when sys/ headers are included when the non-sys form should be used,
281so switch sys/errno.h and so on to errno.h.
282
283musl also causes redefinition errors when pieces of the networking headers are
284included, so remove the redundant includes.
285
286Based on work by Khem Raj <raj.khem@gmail.com>.
287---
288 gweb/gresolv.c | 2 ++
289 plugins/wifi.c | 3 +--
290 src/ippool.c | 1 -
291 src/iptables.c | 2 +-
292 src/tethering.c | 2 --
293 tools/dhcp-test.c | 1 -
294 tools/dnsproxy-test.c | 1 +
295 tools/private-network-test.c | 2 +-
296 tools/tap-test.c | 2 +-
297 9 files changed, 7 insertions(+), 9 deletions(-)
298
299diff --git a/gweb/gresolv.c b/gweb/gresolv.c
300index 8a51a9f..d55027c 100644
301--- a/gweb/gresolv.c
302+++ b/gweb/gresolv.c
303@@ -23,11 +23,13 @@
304 #include <config.h>
305 #endif
306
307+#include <ctype.h>
308 #include <errno.h>
309 #include <unistd.h>
310 #include <stdarg.h>
311 #include <string.h>
312 #include <stdlib.h>
313+#include <stdio.h>
314 #include <resolv.h>
315 #include <sys/types.h>
316 #include <sys/socket.h>
317diff --git a/plugins/wifi.c b/plugins/wifi.c
318index 9d56671..148131d 100644
319--- a/plugins/wifi.c
320+++ b/plugins/wifi.c
321@@ -30,9 +30,8 @@
322 #include <string.h>
323 #include <sys/ioctl.h>
324 #include <sys/socket.h>
325-#include <linux/if_arp.h>
326-#include <linux/wireless.h>
327 #include <net/ethernet.h>
328+#include <linux/wireless.h>
329
330 #ifndef IFF_LOWER_UP
331 #define IFF_LOWER_UP 0x10000
332diff --git a/src/ippool.c b/src/ippool.c
333index cea1dcc..8a645da 100644
334--- a/src/ippool.c
335+++ b/src/ippool.c
336@@ -28,7 +28,6 @@
337 #include <stdio.h>
338 #include <string.h>
339 #include <unistd.h>
340-#include <sys/errno.h>
341 #include <sys/socket.h>
342
343 #include "connman.h"
344diff --git a/src/iptables.c b/src/iptables.c
345index 5ef757a..82e3ac4 100644
346--- a/src/iptables.c
347+++ b/src/iptables.c
348@@ -28,7 +28,7 @@
349 #include <stdio.h>
350 #include <string.h>
351 #include <unistd.h>
352-#include <sys/errno.h>
353+#include <errno.h>
354 #include <sys/socket.h>
355 #include <xtables.h>
356 #include <inttypes.h>
357diff --git a/src/tethering.c b/src/tethering.c
358index 3153349..ad062d5 100644
359--- a/src/tethering.c
360+++ b/src/tethering.c
361@@ -31,10 +31,8 @@
362 #include <stdio.h>
363 #include <sys/ioctl.h>
364 #include <net/if.h>
365-#include <linux/sockios.h>
366 #include <string.h>
367 #include <fcntl.h>
368-#include <linux/if_tun.h>
369 #include <netinet/in.h>
370 #include <linux/if_bridge.h>
371
372diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c
373index c34e10a..eae66fc 100644
374--- a/tools/dhcp-test.c
375+++ b/tools/dhcp-test.c
376@@ -33,7 +33,6 @@
377 #include <arpa/inet.h>
378 #include <net/route.h>
379 #include <net/ethernet.h>
380-#include <linux/if_arp.h>
381
382 #include <gdhcp/gdhcp.h>
383
384diff --git a/tools/dnsproxy-test.c b/tools/dnsproxy-test.c
385index 551cae9..371e2e2 100644
386--- a/tools/dnsproxy-test.c
387+++ b/tools/dnsproxy-test.c
388@@ -24,6 +24,7 @@
389 #endif
390
391 #include <errno.h>
392+#include <stdio.h>
393 #include <stdlib.h>
394 #include <string.h>
395 #include <unistd.h>
396diff --git a/tools/private-network-test.c b/tools/private-network-test.c
397index 3dd115b..2828bb3 100644
398--- a/tools/private-network-test.c
399+++ b/tools/private-network-test.c
400@@ -32,7 +32,7 @@
401 #include <stdlib.h>
402 #include <string.h>
403 #include <signal.h>
404-#include <sys/poll.h>
405+#include <poll.h>
406 #include <sys/signalfd.h>
407 #include <unistd.h>
408
409diff --git a/tools/tap-test.c b/tools/tap-test.c
410index 57917f5..cb3ee62 100644
411--- a/tools/tap-test.c
412+++ b/tools/tap-test.c
413@@ -28,7 +28,7 @@
414 #include <fcntl.h>
415 #include <unistd.h>
416 #include <string.h>
417-#include <sys/poll.h>
418+#include <poll.h>
419 #include <sys/ioctl.h>
420
421 #include <netinet/in.h>
422--
4232.8.1
diff --git a/meta/recipes-connectivity/connman/connman_1.33.bb b/meta/recipes-connectivity/connman/connman_1.33.bb
index 5485c15bd3..6c7e10c9fa 100644
--- a/meta/recipes-connectivity/connman/connman_1.33.bb
+++ b/meta/recipes-connectivity/connman/connman_1.33.bb
@@ -4,10 +4,9 @@ SRC_URI = "${KERNELORG_MIRROR}/linux/network/${BPN}/${BP}.tar.xz \
4 file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \ 4 file://0001-plugin.h-Change-visibility-to-default-for-debug-symb.patch \
5 file://connman \ 5 file://connman \
6 file://no-version-scripts.patch \ 6 file://no-version-scripts.patch \
7 file://includes.patch \
7 " 8 "
8SRC_URI_append_libc-musl = "file://0002-resolve-musl-does-not-implement-res_ninit.patch \ 9SRC_URI_append_libc-musl = "file://0002-resolve-musl-does-not-implement-res_ninit.patch"
9 file://0003-Fix-header-inclusions-for-musl.patch \
10 "
11 10
12SRC_URI[md5sum] = "c51903fd3e7a6a371d12ac5d72a1fa01" 11SRC_URI[md5sum] = "c51903fd3e7a6a371d12ac5d72a1fa01"
13SRC_URI[sha256sum] = "bc8946036fa70124d663136f9f6b6238d897ca482782df907b07a428b09df5a0" 12SRC_URI[sha256sum] = "bc8946036fa70124d663136f9f6b6238d897ca482782df907b07a428b09df5a0"