diff options
author | Ben Kohler <bkohler@gentoo.org> | 2022-02-04 14:15:28 -0600 |
---|---|---|
committer | Ben Kohler <bkohler@gentoo.org> | 2022-02-04 14:25:15 -0600 |
commit | f3641eecc7c75afc5307e248ca98a390ded51bc2 (patch) | |
tree | 16eeb45b786c0d7a683769e96926f75a484eab0a /net-misc/connman | |
parent | sci-libs/branca: PythonCompatUpdate (diff) | |
download | gentoo-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.ebuild | 103 | ||||
-rw-r--r-- | net-misc/connman/files/libresolv-musl-fix.patch | 61 |
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) + |