net/xfr: update to 0.9.16
[0.9.16] - 2026-06-10
v0.9.15 was tagged but never released: its release CI failed on the aarch64-gnu cross build (glibc < 2.27 lacks the memfd_create wrapper; now invoked via raw syscall). All v0.9.15 changes ship here.
Fixed
-R UDP no longer reports the server's send rate as throughput (issue #81) — in download mode the server is the UDP sender, and both the live intervals and the final result carried its bytes_sent: every send_to the kernel accepted counted, so over a constrained link the display tracked the requested -b rate (brettowe's 999.7 Mbps over 100 Mbps Wi-Fi) instead of what arrived. The client — the receiver, the only side that knows wire truth — now overlays its own receive counters onto live intervals (TUI, --json-stream, CSV, plain) and the final result (total, per-stream, throughput). Forward mode was always correct because there the server is the receiver. Repro: CPU-starved receiver with a 4 KB receive buffer showed 2.6 Gbps sender-side vs 1.18 Gbps actually received; the display previously claimed the former and now reports the latter, exactly matching received-packets × packet-size.
-R UDP results now include loss and jitter — the client's receive_udp already computed full receiver-side UdpStats (loss %, jitter, out-of-order, max jitter) but discarded them; download mode showed no UDP Stats block at all. They're now recorded and attached to the final result, and live loss in download mode is derived from the client's own packet trackers rather than the server's (empty) receiver counters.
Added
Zero-copy TCP sends (-Z/--zerocopy, Linux) (issue #33) — the send payload now lives in a memfd_create anonymous file and is pushed to the socket with sendfile(2), skipping the userspace-to-kernel copy that write(2) performs on every 128 KB chunk. On CPU-bound senders (embedded routers, SBCs) the copy itself is often the throughput bottleneck — iperf3's equivalent -Z measured ~3x on a MIPS router. sendfile was chosen over MSG_ZEROCOPY for the first step because it works on old kernels, needs no error-queue completion reaping, and is MPTCP-compatible; MSG_ZEROCOPY remains on the roadmap under the same flag. Opt-in, TCP-only (conflicts with -u/-Q at parse time), and never fails a test: non-Linux platforms, kernels without memfd_create, and sockets that reject sendfile all fall back to regular writes with a warning. Payload semantics are unchanged (--random default / --zeros fill the memfd exactly as they fill the regular buffer).
zerocopy_v1 capability + TestStart.zerocopy field — for -R/--bidir, the client forwards the zero-copy request in TestStart (wire-additive, absent = false) and the server applies it to its own send paths. Servers predating the field silently ignore it, so the client warns when the server doesn't advertise zerocopy_v1.
Library API (pre-1.0 break)
tcp::TcpConfig and client::ClientConfig gain zerocopy: bool. Struct-literal constructors must supply it (Default is false).
[7 lines not shown]
devel/gitpane: update to 0.7.14
[0.7.14] - 2026-06-09
Added
- The submodule tag in the Changes panel now shows which branch the submodule is on (@<branch>,
or @detached for a detached HEAD, which is git's default after submodule update), so a dirty
or modified submodule tells you where the change lives. It also gains a ↛main warning when
the pinned submodule commit is reachable from a remote but not from the submodule's default
branch (origin/HEAD, falling back to origin/main/origin/master), meaning it still needs a merge
there. The warning stays silent when no default branch resolves, so it never fires on a false
positive. The existing ⚠unreach (commit on no remote) still takes precedence, while ↑N (ahead
of upstream) and ↛main compose, e.g. [sub: +commit @feature ↑3 ↛main].
Updated sysutils/xenkernel418 to 20260610
Updated sysutils/xentools418 to 20260610
Updated sysutils/xenkernel420 to 20260610
Updated sysutils/xentools420 to 20260610
Update xenkernel420, xentools420 and xenstoretools to 20260610.
Changes since 20260515: bug fixes, including fixes for XSA-491,
XSA-492, XSA-493 and XSA-494
Update shells/bash to 5.3.15
Patch 13: Avoid (potential) UB comparing result from realloc with its arg
Patch 14: Improve the solution from patch 11
Patch 15: Avoid references to the byte before the input buffer used by read
And for completeness, for the patches from the previous update:
Patch 10: Fix problem with some EXIT traps calling wait
Patch 11: Fix possible ref to freed memory in mapfile
Patch 12: Fix issue with subshells, EXIT traps, and fatal signals
ccid: updated to 1.8.1
1.8.1
Correctly close the slots of a multi-slots reader
Fix 3 minor issues "Found by AISLE in partnership with Red Hat"
Some other minor improvements
ntopng: updated to 6.6
6.6
Breakthroughs
New Autonomous Systems Dashboards, Sankeys, and comprehensive AS statistics
Enhanced flow exporters and probes statistics with dedicated pages
Improved SNMP devices polling
Major flow collection code rework and optimizations
Native support for ClickHouse Cloud with SSL connections
Direct flows dump mode for real-time ClickHouse export
Improvements
Add comprehensive AS ranking detection and alerting with configurable thresholds
Implement ASN traffic rules for better AS-level traffic management
Enhance ASN live flow aggregation
Add conditional ASN aggregation type based on ASN mode
[37 lines not shown]
py-lmdb: updated to 2.2.1
2.2.1
Improvements
- ``lmdb.aio`` async wrapper methods (on ``AsyncEnvironment``,
``AsyncTransaction``, and ``AsyncCursor``) are now real class
attributes rather than synthesized by ``__getattr__``, making them
visible to ``dir()``, ``inspect.signature()``, ``help()``, IPython,
and stubtest. Non-callable attributes still proxy through.
- Added type stubs for the ``lmdb.aio`` module.
Fixes
- Fix a segmentation fault on Linux/aarch64 when an ``Environment`` is
closed from a different thread than the one holding an active write
transaction. ``Environment.close()`` now waits for the owning thread
[18 lines not shown]
py-asyncssh: updated to 2.23.1
2.23.1 (6 Jun 2026)
* Fixed an SCP path traversal issue. Thanks go to Jaden Furtado for
reporting this issue.
* Expanded previous fix to block unsafe user substitutions in server
config. Thanks go to GitHub user cesabici-bit for reporting this
issue.
* Fixed default value for reuse_address and reuse_port, matching
the behaavior of asyncio.create_server(). Thanks go to Alexander
Shlemin for reporting the inconsistency.