Files
meta-openembedded/meta-networking/recipes-devtools/python/python3-scapy/0004-test-don-t-depend-on-libc-formatting-of-IPv4-compati.patch
Khem Raj 4ec8afbfcf python3-scapy: fix libpcap loading and ptests on musl
- ctypes.util.find_library() relies on "ldconfig -p", gcc or ld, none of
  which exist on a musl target, so find_library("pcap") returns None
  and scapy raises "Cannot find libpcap.so library" even with libpcap
  installed. That disabled conf.use_pcap and BPF filter compilation and
  failed ten ptests (offline sniff() with filters, tcpdump(), tdecode(),
  traceroute). Fall back to loading libpcap.so.1/libpcap.so by name.

- The NetBSD read_routes6() test compares IPv4-compatible IPv6 prefixes
  as strings, but musl's inet_ntop() prints ::127.0.0.0 as ::7f00:0.
  Normalise the expected values with in6_ptop().

Tested with meta-networking-image-ptest-python3-scapy on qemux86-64
with yoe-musl-systemd-wayland: TOTAL: 1 FAIL: 0.

AI-Generated: Uses Claude Code
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-09-28 06:57:40 -07:00

38 lines
1.6 KiB
Diff

From 7602260f82f54cf9b179549c5b03866ec16f68d5 Mon Sep 17 00:00:00 2001
From: Khem Raj <khem.raj@oss.qualcomm.com>
Date: Sun, 27 Sep 2026 15:54:57 -0700
Subject: [PATCH 4/4] test: don't depend on libc formatting of IPv4-compatible
addresses
The NetBSD read_routes6() test compares route prefixes such as
::127.0.0.0 as strings, but scapy formats them with the libc's
inet_ntop(). glibc prints IPv4-compatible addresses in dotted form,
while musl only does so for IPv4-mapped (::ffff:a.b.c.d) addresses and
prints ::7f00:0, ::e000:0 and ::ff00:0, so the test fails on musl.
Both forms denote the same address; normalise the expected values with
in6_ptop() so they match whatever the libc produces.
Upstream-Status: Pending
Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
---
test/regression.uts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/regression.uts b/test/regression.uts
index 4c972fa1..b6bb9d6e 100644
--- a/test/regression.uts
+++ b/test/regression.uts
@@ -3134,9 +3134,9 @@ assert routes == [
('::', 104, '::1', 'lo0', ['::1'], 1),
('::', 96, '::1', 'lo0', ['::1'], 1),
('::1', 128, '::', 'lo0', ['::1'], 1),
- ('::127.0.0.0', 104, '::1', 'lo0', ['::1'], 1),
- ('::224.0.0.0', 100, '::1', 'lo0', ['::1'], 1),
- ('::255.0.0.0', 104, '::1', 'lo0', ['::1'], 1),
+ (in6_ptop('::127.0.0.0'), 104, '::1', 'lo0', ['::1'], 1),
+ (in6_ptop('::224.0.0.0'), 100, '::1', 'lo0', ['::1'], 1),
+ (in6_ptop('::255.0.0.0'), 104, '::1', 'lo0', ['::1'], 1),
('::ffff:0.0.0.0', 96, '::1', 'lo0', ['::1'], 1),
('2001:db8::', 32, '::1', 'lo0', ['::1'], 1),
('2002::', 24, '::1', 'lo0', ['::1'], 1),