commit:     a0dd8d6c0edaf5f3aa67f81aef727abe7aff4c86
Author:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
AuthorDate: Sun Oct 17 15:37:34 2021 +0000
Commit:     Ben Kohler <bkohler <AT> gentoo <DOT> org>
CommitDate: Sun Oct 17 15:50:54 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a0dd8d6c

net-wireless/iwd: backport musl fix

Closes: https://bugs.gentoo.org/818700
Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Ben Kohler <bkohler <AT> gentoo.org>

 .../iwd/files/iwd-1.18-musl-backport.patch         | 30 ++++++++++++++++++++++
 net-wireless/iwd/iwd-1.18.ebuild                   |  5 ++--
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/net-wireless/iwd/files/iwd-1.18-musl-backport.patch 
b/net-wireless/iwd/files/iwd-1.18-musl-backport.patch
new file mode 100644
index 00000000000..99371ca3bb4
--- /dev/null
+++ b/net-wireless/iwd/files/iwd-1.18-musl-backport.patch
@@ -0,0 +1,30 @@
+From 42bd5ba7c2665c5bf95ba102a8115c4cf01d31d7 Mon Sep 17 00:00:00 2001
+From: Andrew Zaborowski <andrew.zaborow...@intel.com>
+Date: Thu, 16 Sep 2021 01:58:29 +0200
+Subject: netconfig: Remove usage of in6_addr.__in6_u
+
+in6_addr.__in6_u.__u6_addr8 is glibc-specific and named differently in
+the headers shipped with musl libc for example.  The POSIX compliant and
+universal way of accessing it is in6_addr.s6_addr.
+---
+ src/netconfig.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+(limited to 'src/netconfig.c')
+
+diff --git a/src/netconfig.c b/src/netconfig.c
+index ce95db0b..421270c9 100644
+--- a/src/netconfig.c
++++ b/src/netconfig.c
+@@ -171,7 +171,7 @@ static inline char *netconfig_ipv6_to_string(const uint8_t 
*addr)
+       struct in6_addr in6_addr;
+       char *addr_str = l_malloc(INET6_ADDRSTRLEN);
+ 
+-      memcpy(in6_addr.__in6_u.__u6_addr8, addr, 16);
++      memcpy(in6_addr.s6_addr, addr, 16);
+ 
+       if (L_WARN_ON(unlikely(!inet_ntop(AF_INET6, &in6_addr, addr_str,
+                                               INET6_ADDRSTRLEN)))) {
+-- 
+cgit 1.2.3-1.el7
+

diff --git a/net-wireless/iwd/iwd-1.18.ebuild b/net-wireless/iwd/iwd-1.18.ebuild
index d4be6c4edc9..e12f511a796 100644
--- a/net-wireless/iwd/iwd-1.18.ebuild
+++ b/net-wireless/iwd/iwd-1.18.ebuild
@@ -22,8 +22,8 @@ 
HOMEPAGE="https://git.kernel.org/pub/scm/network/wireless/iwd.git/";
 
 LICENSE="GPL-2"
 SLOT="0"
-IUSE="+client +crda +monitor ofono wired cpu_flags_x86_aes cpu_flags_x86_ssse3
-standalone systemd"
+IUSE="+client cpu_flags_x86_aes cpu_flags_x86_ssse3 +crda elibc_musl +monitor 
ofono
+standalone systemd wired"
 
 DEPEND="
        sys-apps/dbus
@@ -131,6 +131,7 @@ src_unpack() {
 
 src_prepare() {
        default
+       use elibc_musl && eapply "${FILESDIR}"/iwd-1.18-musl-backport.patch
        if [[ ${PV} == *9999* ]] ; then
                eautoreconf
        fi

Reply via email to