summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Kohler <bkohler@gentoo.org>2022-02-04 14:15:28 -0600
committerBen Kohler <bkohler@gentoo.org>2022-02-04 14:25:15 -0600
commitf3641eecc7c75afc5307e248ca98a390ded51bc2 (patch)
tree16eeb45b786c0d7a683769e96926f75a484eab0a /net-misc/connman
parentsci-libs/branca: PythonCompatUpdate (diff)
downloadgentoo-f3641eecc7c75afc5307e248ca98a390ded51bc2.tar.gz
gentoo-f3641eecc7c75afc5307e248ca98a390ded51bc2.tar.bz2
gentoo-f3641eecc7c75afc5307e248ca98a390ded51bc2.zip
net-misc/connman: musl fix
Closes: https://bugs.gentoo.org/832548 Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: Ben Kohler <bkohler@gentoo.org>
Diffstat (limited to 'net-misc/connman')
-rw-r--r--net-misc/connman/connman-1.41-r1.ebuild103
-rw-r--r--net-misc/connman/files/libresolv-musl-fix.patch61
2 files changed, 164 insertions, 0 deletions
diff --git a/net-misc/connman/connman-1.41-r1.ebuild b/net-misc/connman/connman-1.41-r1.ebuild
new file mode 100644
index 000000000000..2db37a70b743
--- /dev/null
+++ b/net-misc/connman/connman-1.41-r1.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="7"
+inherit autotools systemd tmpfiles
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://git.kernel.org/pub/scm/network/connman/connman.git"
+else
+ SRC_URI="https://www.kernel.org/pub/linux/network/${PN}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Provides a daemon for managing internet connections"
+HOMEPAGE="https://git.kernel.org/pub/scm/network/connman/connman.git/"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="bluetooth debug doc +ethernet examples iptables iwd l2tp networkmanager
++nftables ofono openconnect openvpn policykit pptp tools vpnc +wifi wireguard
+wispr"
+
+REQUIRED_USE="^^ ( iptables nftables )"
+BDEPEND="virtual/pkgconfig"
+RDEPEND=">=dev-libs/glib-2.16
+ >=sys-apps/dbus-1.2.24
+ sys-libs/readline:0=
+ bluetooth? ( net-wireless/bluez )
+ iptables? ( >=net-firewall/iptables-1.4.8 )
+ iwd? ( net-wireless/iwd )
+ l2tp? ( net-dialup/xl2tpd )
+ nftables? (
+ >=net-libs/libnftnl-1.0.4:0=
+ >=net-libs/libmnl-1.0.0:0= )
+ ofono? ( net-misc/ofono )
+ openconnect? ( net-vpn/openconnect )
+ openvpn? ( net-vpn/openvpn )
+ policykit? ( sys-auth/polkit )
+ pptp? ( net-dialup/pptpclient )
+ vpnc? ( net-vpn/vpnc )
+ wifi? ( >=net-wireless/wpa_supplicant-2.0[dbus] )
+ wireguard? ( >=net-libs/libmnl-1.0.0:0= )
+ wispr? ( net-libs/gnutls )"
+
+DEPEND="${RDEPEND}
+ >=sys-kernel/linux-headers-2.6.39"
+
+PATCHES=( "${FILESDIR}/libresolv-musl-fix.patch" )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --localstatedir=/var \
+ --runstatedir=/run \
+ --with-systemdunitdir=$(systemd_get_systemunitdir) \
+ --with-tmpfilesdir="${EPREFIX}"/usr/lib/tmpfiles.d \
+ --enable-client \
+ --enable-datafiles \
+ --enable-loopback=builtin \
+ $(use_enable bluetooth bluetooth builtin) \
+ $(use_enable debug) \
+ $(use_enable ethernet ethernet builtin) \
+ $(use_enable examples test) \
+ $(use_enable iwd) \
+ $(use_enable l2tp l2tp builtin) \
+ $(use_enable networkmanager nmcompat) \
+ $(use_enable ofono ofono builtin) \
+ $(use_enable openconnect openconnect builtin) \
+ $(use_enable openvpn openvpn builtin) \
+ $(use_enable policykit polkit builtin) \
+ $(use_enable pptp pptp builtin) \
+ $(use_enable tools) \
+ $(use_enable vpnc vpnc builtin) \
+ $(use_enable wifi wifi builtin) \
+ $(use_enable wireguard) \
+ $(use_enable wispr wispr builtin) \
+ --with-firewall=$(usex iptables "iptables" "nftables" ) \
+ --disable-iospm \
+ --disable-hh2serial-gps
+}
+
+src_install() {
+ default
+ dobin client/connmanctl
+
+ if use doc; then
+ dodoc doc/*.txt
+ fi
+ keepdir /usr/lib/${PN}/scripts
+ keepdir /var/lib/${PN}
+ newinitd "${FILESDIR}"/${PN}.initd2 ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
+
+pkg_postinst() {
+ tmpfiles_process connman_resolvconf.conf
+}
diff --git a/net-misc/connman/files/libresolv-musl-fix.patch b/net-misc/connman/files/libresolv-musl-fix.patch
new file mode 100644
index 000000000000..c28a7c1e3589
--- /dev/null
+++ b/net-misc/connman/files/libresolv-musl-fix.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)
+