libnbd-release-notes-1.16(1)
π libnbd-release-notes-1.16 β the tea β
okay bestie, so this is the libnbd manual page libnbd-release-notes-1.16(1) and it's literally the glow-up diary for libnbd version 1.16. buckle up π
β¨ NAME β¨
libnbd-release-notes-1.16 β the release notes for libnbd 1.16, periodt π
πΈ DESCRIPTION πΈ
These are the release notes for the libnbd stable release 1.16, and they spill all the major changes since 1.14. main character energy only π
libnbd 1.16.0 was released on 18 April 2023. mark your calendars ποΈβ¨
π Security
Genuinely iconic behavior: no security issues were found in this release. clean sheet, we love to see it ππ«Ά
But if you do find a security issue, please read SECURITY in the source β it's online here: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY. And if you wanna know about previous security issues in libnbd, go see libnbd-security(3). iykyk π
π¦ New APIs
So many new babies, let's go π
- New API
nbd_supports_vsock(3)β you can use it to test if the client has vsock support (Eric Blake). - New API
nbd_poll2(3)β it lets an extra file descriptor be passed in (Ming Lei). - New
nbd_stats_bytes_sent(3),nbd_stats_bytes_received(3),nbd_stats_chunks_sent(3)andnbd_stats_chunks_received(3)APIs β these expose the number of bytes and messages sent and received on the current connection (Eric Blake). stats girlies rise π - New
nbd_opt_list_meta_context_queries(3)andnbd_aio_opt_list_meta_context_queries(3)APIs β these let you query the available meta contexts interactively with the server during the negotiation phase of the protocol (Eric Blake). talk to the server, slay π¬ - New
nbd_set_request_meta_context(3)β lets you control whether the meta context is set during negotiation. this can make certain operations faster, especiallynbdinfo --list(Eric Blake). speed it up β‘ - New
nbd_opt_set_meta_context(3),nbd_opt_set_meta_context_queries(3),nbd_aio_opt_set_meta_context(3)andnbd_aio_opt_set_meta_context_queries(3)APIs β these let you request meta contexts when usingnbd_set_opt_mode(3)(Eric Blake). - New
nbd_opt_structured_reply(3)andnbd_aio_opt_structured_reply(3)APIs β these let you fine-tune when structured replies are requested during the negotiation phase (Eric Blake). - New
nbd_opt_starttls(3)andnbd_aio_opt_starttls(3)APIs β these let you fine-tune when STARTTLS is negotiated (Eric Blake). π - New
nbd_set_socket_activation_name(3)andnbd_get_socket_activation_name(3)APIs β these allow you to name the socket used for socket activation. certain servers such asqemu-storage-daemonwill use this name on the command line and in scripts. (Thanks Laszlo Ersek). π
π Enhancements to existing APIs
the glow-ups we didn't know we needed:
nbd_connect_command(3)called with aNULLargv parameter previously crashed, but now returns an error (Eric Blake). no more crashing bestie, we healed πnbd_opt_list_meta_context(3)can now be called without having negotiated structured replies (Eric Blake). freedom β¨nbd_set_strict_mode(3)has a newLIBNBD_STRICT_PAYLOADflag which can be used to control whether send oversize messages, in order to test servers (Eric Blake).- C API pointer parameters that cannot be
NULLare now annotated withattribute((nonnull))(if the compiler supports it) so that you will get a compile time warning if they are used improperly (thanks Eric Blake). compiler said "not on my watch" π¨ - C APIs which allocate are now marked with
attribute((malloc))and similar attributions to improve static analysis of programs using libnbd (Eric Blake). π - C APIs expressing flag values now use unsigned types, removing some undefined corner-cases with bitwise math on signed ints. this change is API and ABI backwards compatible. (Eric Blake). no cap, that's a win π
π§° Tools
- New
nbdublk(1)program which is used to create a Linux/dev/ublkb<N>block device from an NBD server (thanks Ming Lei). new tool just dropped π nbdinfo(1)now has colorized output (use--no-colorto disable). aesthetic activated πnbdinfohas new--is tlsand--can structured-replyoptions to let you test for these features on the server (Eric Blake).nbdcopy(1)now writes progress messages to stderr (previously they were written to/dev/tty). this makes it consistent with other tools likedd. (Eric Blake). consistency is so hot π₯nbdsh(1)options-cand-ucan now be interleaved, making it easier to toggle optional URI features (Eric Blake).
π Language bindings
international slay π
- Documentation for the OCaml bindings now includes parameter names.
- The OCaml bindings now return OCaml error values in exceptions instead of raw C
errnonumbers. - OCaml bindings now support
nbd_aio_connect(3)which uses thesockaddrtype directly. - The Python bindings now have an explicit
h.close()method. letting the handle go out of scope still works for closing the handle, but now you have the choice to explicitly close the handle before it goes out of scope. if you try to use the handle after closing it, a newnbd.ClosedHandleexception will be thrown. π - The Python bindings now provide a
contextlibdecorated function, so you can write the more naturalwith nbd.nbd() as h: ...πβ¨
π§ͺ Tests
Wider CI coverage (Eric Blake). testing era, we stan π§
π οΈ Other improvements and bug fixes
- The state machine can now cope with and recover from some bad structured reply messages and unknown cookies sent by the server (Eric Blake). resilience queen π
- The library is now annotated with
-z nodelete, preventing it from being "really" unloaded when you calldlclose(3). this is the only way to prevent a crash in multi-threaded code. see commit368e3d0d5a887for details. π - Improve debugging when the handle enters the
%DEADstate. π - The library is now much more POSIX-compliant and resilient when running subcommands, no longer relying on quirks of the glibc implementation of
execvpand other non-async-signal-safe functions (Laszlo Ersek). - Source files reformatted to use β€ 80 columns (Laszlo Ersek). formatting self-care π
ποΈ Build
- Fix build on Alpine Linux + musl which declares
AF_VSOCKbut does not define the associated structures (Eric Blake). - Python
distutils, deprecated in Python β₯ 3.10, has been replaced bysysconfig(thanks Miro HronΔok).
π SEE ALSO
libnbd(3) β that's the one, bestie π«Ά
π AUTHORS
the legends responsible:
- Daniel P. BerrangΓ©
- Eric Blake
- Laszlo Ersek
- Ming Lei
- Richard W.M. Jones
Β©οΈ COPYRIGHT
Copyright Red Hat
π LICENSE
This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. see the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
and that's the whole page, bestie π this was libnbd-release-notes-1.16(1) from the LIBNBD manual, shipped as version libnbd-1.25.8, dated 2026-10-13. mwah, go read libnbd(3) next ππ
π¦ where this page comes from
- centos-stream 10: libnbd-devel 1.25.8-1.el10 Β· LGPL-2.0-or-later AND BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms