aboutsummaryrefslogtreecommitdiffstats
path: root/community/connman
diff options
context:
space:
mode:
authorClayton Craft <clayton@craftyguy.net>2017-09-24 09:16:55 -0700
committerTimo Teräs <timo.teras@iki.fi>2017-09-25 06:03:07 +0000
commit4eaf6ddd7fccce14fac2cdae9011cbefb5681df5 (patch)
treecb14f7d93081f553a498ffe5cdbdb255805ea122 /community/connman
parentcd993ffdeb097c658c4a09da9bb06993cc2b8a5b (diff)
downloadaports-4eaf6ddd7fccce14fac2cdae9011cbefb5681df5.tar.bz2
aports-4eaf6ddd7fccce14fac2cdae9011cbefb5681df5.tar.xz
testing/connman: move connman to community
Per discussion with kaniini, move connman to community and assume maintainership
Diffstat (limited to 'community/connman')
-rw-r--r--community/connman/APKBUILD52
-rw-r--r--community/connman/connman.initd20
-rw-r--r--community/connman/libresolv.patch61
-rw-r--r--community/connman/musl-fixes.patch179
4 files changed, 312 insertions, 0 deletions
diff --git a/community/connman/APKBUILD b/community/connman/APKBUILD
new file mode 100644
index 0000000000..e84228dfd2
--- /dev/null
+++ b/community/connman/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Clayton Craft <clayton@craftyguy.net>
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+pkgname=connman
+pkgver=1.35
+pkgrel=0
+pkgdesc="A daemon for managing internet connections"
+url="http://connman.net/"
+arch="all"
+license="GPLv2"
+depends="wpa_supplicant"
+makedepends="autoconf automake libtool
+ glib-dev iptables-dev readline-dev dbus-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc"
+source="http://www.kernel.org/pub/linux/network/$pkgname/$pkgname-$pkgver.tar.xz
+ musl-fixes.patch
+ libresolv.patch
+ connman.initd
+ "
+
+builddir="$srcdir"/$pkgname-$pkgver
+prepare() {
+ default_prepare
+ cd "$builddir"
+ autoreconf -vif
+}
+
+build() {
+ cd "$builddir"
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --infodir=/usr/share/info \
+ --localstatedir=/var \
+ --disable-wispr
+ make
+}
+
+package() {
+ cd "$builddir"
+ make DESTDIR="$pkgdir" install
+ install -Dm644 src/main.conf "$pkgdir"/etc/$pkgname/main.conf
+ install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+}
+
+sha512sums="2234b4d18b038f9a33939035cddebd31c74ce962e5616c2c30b2912476612ef3f7d5b9edca64bf6e69fa358252ed432124e036ac3516b291b86695cb9a96c6a8 connman-1.35.tar.xz
+de2b5015fa50cb3da69c7f3e95bfec7093c91ea545f9bc9b1a2bfec7f79e9d9b74240c774a93f17b5d244f05926ca3f68843123cb267ab9de038c7dabbea2ab5 musl-fixes.patch
+c258e747e13b86c81ae96ac1743abf0c1461b9053c5b386d594a49f0b1890f10d89bea92610762ff609a4cc5fea04a43fab83894702f552b05af400f01cb011e libresolv.patch
+42b45d44f5eed966ba003683fcb54ffb4e9a0331599ff1c8e5e64c4c06b42d380c3852b7c73881a1be1eaca887906cac9aede1f5579e8e139fdf90ca8d7adf15 connman.initd"
diff --git a/community/connman/connman.initd b/community/connman/connman.initd
new file mode 100644
index 0000000000..1728694274
--- /dev/null
+++ b/community/connman/connman.initd
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+
+description="Connection Manager"
+cfgfile=/etc/connman/main.conf
+pidfile=/run/connman/connman.pid
+command=/usr/sbin/connmand
+command_args="$command_args -n -c $cfgfile"
+command_background="yes"
+
+depend() {
+ need dbus
+ provide net
+}
+
+start_pre() {
+ ebegin
+ checkpath --directory ${pidfile%/*}
+ ln -sf ${pidfile%/*}/resolv.conf /etc/
+ eend $?
+}
diff --git a/community/connman/libresolv.patch b/community/connman/libresolv.patch
new file mode 100644
index 0000000000..c28a7c1e35
--- /dev/null
+++ b/community/connman/libresolv.patch
@@ -0,0 +1,61 @@
+musl does not implement res_ninit
+
+diff --exclude '*.*o' -ru connman-1.24.orig/gweb/gresolv.c connman-1.24/gweb/gresolv.c
+--- connman-1.24.orig/gweb/gresolv.c 2014-07-18 20:17:25.000000000 -0300
++++ connman-1.24/gweb/gresolv.c 2014-07-18 20:24:01.874669130 -0300
+@@ -874,8 +874,6 @@
+ resolv->index = index;
+ resolv->nameserver_list = NULL;
+
+- res_ninit(&resolv->res);
+-
+ return resolv;
+ }
+
+@@ -915,8 +913,6 @@
+
+ flush_nameservers(resolv);
+
+- res_nclose(&resolv->res);
+-
+ g_free(resolv);
+ }
+
+@@ -1019,24 +1015,19 @@
+ debug(resolv, "hostname %s", hostname);
+
+ if (!resolv->nameserver_list) {
+- int i;
+-
+- for (i = 0; i < resolv->res.nscount; i++) {
+- char buf[100];
+- int family = resolv->res.nsaddr_list[i].sin_family;
+- void *sa_addr = &resolv->res.nsaddr_list[i].sin_addr;
+-
+- if (family != AF_INET &&
+- resolv->res._u._ext.nsaddrs[i]) {
+- family = AF_INET6;
+- sa_addr = &resolv->res._u._ext.nsaddrs[i]->sin6_addr;
++ FILE *f = fopen("/etc/resolv.conf", "r");
++ if (f) {
++ char line[256], *s;
++ int i;
++ while (fgets(line, sizeof(line), f)) {
++ if (strncmp(line, "nameserver", 10) || !isspace(line[10]))
++ continue;
++ for (s = &line[11]; isspace(s[0]); s++);
++ for (i = 0; s[i] && !isspace(s[i]); i++);
++ s[i] = 0;
++ g_resolv_add_nameserver(resolv, s, 53, 0);
+ }
+-
+- if (family != AF_INET && family != AF_INET6)
+- continue;
+-
+- if (inet_ntop(family, sa_addr, buf, sizeof(buf)))
+- g_resolv_add_nameserver(resolv, buf, 53, 0);
++ fclose(f);
+ }
+
+ if (!resolv->nameserver_list)
+
diff --git a/community/connman/musl-fixes.patch b/community/connman/musl-fixes.patch
new file mode 100644
index 0000000000..6290f68dd6
--- /dev/null
+++ b/community/connman/musl-fixes.patch
@@ -0,0 +1,179 @@
+--- ./configure.ac.orig
++++ ./configure.ac
+@@ -171,6 +171,8 @@
+ AM_CONDITIONAL(PPTP, test "${enable_pptp}" != "no")
+ AM_CONDITIONAL(PPTP_BUILTIN, test "${enable_pptp}" = "builtin")
+
++AC_CHECK_MEMBERS([struct in6_pktinfo.ipi6_addr], [], [], [[#include <netinet/in.h>]])
++AC_CHECK_HEADERS(execinfo.h)
+ AC_CHECK_HEADERS(resolv.h, dummy=yes,
+ AC_MSG_ERROR(resolver header files are required))
+ AC_CHECK_LIB(resolv, ns_initparse, dummy=yes, [
+diff --git a/gdhcp/common.c b/gdhcp/common.c
+index e111150..ee4dc43 100644
+--- a/gdhcp/common.c
++++ b/gdhcp/common.c
+@@ -22,6 +22,7 @@
+ #include <config.h>
+ #endif
+
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <errno.h>
+@@ -31,7 +32,6 @@
+ #include <string.h>
+ #include <endian.h>
+ #include <net/if_arp.h>
+-#include <linux/if.h>
+ #include <netpacket/packet.h>
+ #include <net/ethernet.h>
+ #include <arpa/inet.h>
+@@ -39,6 +39,8 @@
+ #include "gdhcp.h"
+ #include "common.h"
+
++#include <linux/if.h>
++
+ static const DHCPOption client_options[] = {
+ { OPTION_IP, 0x01 }, /* subnet-mask */
+ { OPTION_IP | OPTION_LIST, 0x03 }, /* routers */
+diff --git a/src/log.c b/src/log.c
+index a693bd0..9054462 100644
+--- a/src/log.c
++++ b/src/log.c
+ static void signal_handler(int signo)
+diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c
+index c34e10a..eae66fc 100644
+--- a/tools/dhcp-test.c
++++ b/tools/dhcp-test.c
+@@ -33,7 +33,6 @@
+ #include <arpa/inet.h>
+ #include <net/route.h>
+ #include <net/ethernet.h>
+-#include <linux/if_arp.h>
+
+ #include <gdhcp/gdhcp.h>
+
+diff --exclude '*.*o' -ru connman-1.24.orig/plugins/wifi.c connman-1.24/plugins/wifi.c
+--- connman-1.24.orig/plugins/wifi.c 2014-06-07 21:46:22.000000000 -0300
++++ connman-1.24/plugins/wifi.c 2014-07-18 20:37:16.811343663 -0300
+@@ -30,9 +30,8 @@
+ #include <string.h>
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+-#include <linux/if_arp.h>
+-#include <linux/wireless.h>
+ #include <net/ethernet.h>
++#include <linux/wireless.h>
+
+ #ifndef IFF_LOWER_UP
+ #define IFF_LOWER_UP 0x10000
+diff --exclude '*.*o' -ru connman-1.24.orig/src/tethering.c connman-1.24/src/tethering.c
+--- connman-1.24.orig/src/tethering.c 2014-04-04 15:12:07.000000000 -0300
++++ connman-1.24/src/tethering.c 2014-07-18 20:39:12.091344804 -0300
+@@ -31,10 +31,8 @@
+ #include <stdio.h>
+ #include <sys/ioctl.h>
+ #include <net/if.h>
+-#include <linux/sockios.h>
+ #include <string.h>
+ #include <fcntl.h>
+-#include <linux/if_tun.h>
+ #include <netinet/in.h>
+ #include <linux/if_bridge.h>
+
+diff --exclude '*.*o' -ru connman-1.24.orig/tools/dnsproxy-test.c connman-1.24/tools/dnsproxy-test.c
+--- connman-1.24.orig/tools/dnsproxy-test.c 2013-12-05 09:12:12.000000000 -0200
++++ connman-1.24/tools/dnsproxy-test.c 2014-07-18 20:36:37.484676606 -0300
+@@ -24,6 +24,7 @@
+ #endif
+
+ #include <errno.h>
++#include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+diff --exclude '*.*o' -ru connman-1.24.orig/tools/private-network-test.c connman-1.24/tools/private-network-test.c
+--- connman-1.24.orig/tools/private-network-test.c 2013-08-19 19:57:25.000000000 -0300
++++ connman-1.24/tools/private-network-test.c 2014-07-18 20:28:42.644671909 -0300
+@@ -32,7 +32,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/signalfd.h>
+ #include <unistd.h>
+
+diff --exclude '*.*o' -ru connman-1.24.orig/tools/tap-test.c connman-1.24/tools/tap-test.c
+--- connman-1.24.orig/tools/tap-test.c 2013-12-05 09:12:12.000000000 -0200
++++ connman-1.24/tools/tap-test.c 2014-07-18 20:28:35.351338499 -0300
+@@ -29,7 +29,7 @@
+ #include <fcntl.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/ioctl.h>
+
+ #include <netinet/in.h>
+diff '--exclude=*.*o' -ru connman-1.24.orig/gweb/gresolv.c connman-1.24/gweb/gresolv.c
+--- connman-1.24.orig/gweb/gresolv.c 2014-07-18 20:43:40.000000000 -0300
++++ connman-1.24/gweb/gresolv.c 2014-07-18 20:44:43.284681413 -0300
+@@ -24,6 +24,7 @@
+ #endif
+
+ #include <errno.h>
++#include <stdio.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <string.h>
+diff '--exclude=*.*o' -ru connman-1.24.orig/src/ippool.c connman-1.24/src/ippool.c
+--- connman-1.24.orig/src/ippool.c 2014-04-04 15:12:07.000000000 -0300
++++ connman-1.24/src/ippool.c 2014-07-18 20:44:56.068014872 -0300
+@@ -28,7 +28,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/socket.h>
+
+ #include "connman.h"
+diff '--exclude=*.*o' -ru connman-1.24.orig/src/iptables.c connman-1.24/src/iptables.c
+--- connman-1.24.orig/src/iptables.c 2014-04-04 15:12:07.000000000 -0300
++++ connman-1.24/src/iptables.c 2014-07-18 20:44:25.844681240 -0300
+@@ -28,7 +28,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
+-#include <sys/errno.h>
++#include <errno.h>
+ #include <sys/socket.h>
+ #include <xtables.h>
+
+
+--- ./gdhcp/common.h.orig
++++ ./gdhcp/common.h
+@@ -18,6 +18,9 @@
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
++#ifdef HAVE_CONFIG_H
++#include <config.h>
++#endif
+
+ #include <netinet/udp.h>
+ #include <netinet/ip.h>
+@@ -170,8 +173,8 @@
+ [OPTION_U32] = 4,
+ };
+
+-/* already defined within netinet/in.h if using GNU compiler */
+-#ifndef __USE_GNU
++/* already defined within netinet/in.h if using GNU or musl libc */
++#ifndef HAVE_STRUCT_IN6_PKTINFO_IPI6_ADDR
+ struct in6_pktinfo {
+ struct in6_addr ipi6_addr; /* src/dst IPv6 address */
+ unsigned int ipi6_ifindex; /* send/recv interface index */