libnbd-release-notes-1.4(1)

✨ libnbd-release-notes-1.4 ✨

okay bestie so this is the page for libnbd-release-notes-1.4(1) β€” part of the LIBNBD manual fam πŸ’… β€” and it's literally the whole glow-up story of libnbd stable release 1.4. Grab a snack πŸ“, we're recapping the major changes since 1.2.

🌸 NAME 🌸

libnbd-release-notes-1.4 β€” the release notes for libnbd 1.4, bestie. That's it, that's the whole vibe.

πŸ¦‹ DESCRIPTION πŸ¦‹

These are the release notes for libnbd stable release 1.4, and they describe the major changes since 1.2. Main character energy only ✨

libnbd 1.4.0 was released on 25 August 2020. Mark your calendars, it's iconic.

πŸ”’ Security

ngl, there were no security issues found in this release β€” we ate and left no crumbs πŸŽ€

If you do find a security issue, please read SECURITY in the source (online here: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY). And to find out about previous security issues in libnbd, see libnbd-security(3). iykyk, always check the receipts πŸ’œ

πŸ‘‘ New APIs

libnbd 1.4 adds a whole new "negotiating" state during NBD handshaking, and it's giving main character πŸ’… For backwards compatibility, programs must request this before starting the connection by calling nbd_set_opt_mode(3). And you can find out if the connection is in this state by calling nbd_aio_is_negotiating(3).

For an in-depth description of how this extra state can be used to negotiate server options, see the section "CONTROLLING NEGOTIATION" in libnbd(3). Slay.

During the negotiating state, abort the connection. Bye bestie πŸ‘‹

During the negotiating state, complete the handshake. finally, closure 🫢

During the negotiating state, request full information about the server export. so nosy of you, we love it πŸ™ˆ

During the negotiating state, request the list of exports that the server provides. window shopping, basically πŸ›οΈ

Return the minimum, preferred or maximum block size constraints for requests sent to the server. Know your limits, queen.

Return the canonical export name that the server defaults to. Heads up tho: this information may only be available if you call nbd_set_full_info(3) before connecting πŸ’€

Return the optional text description of the current export. Same caveat, bestie: this information may only be available if you call nbd_set_full_info(3) before connecting.

Enable extended information about exports from the server. more info = more lore πŸ“š

Thanks: Eric Blake for all of the new APIs. absolute legend πŸ‘‘πŸ«Ά

🌈 New features

  • Bindings are now available in the Go programming language. new language unlocked πŸ”“
  • FreeBSD and OpenBSD are now fully supported platforms. the whole friend group is here πŸŽ€
  • Bash tab completion is available for all of the command line tools. press Tab, feel the magic ✨

πŸ“– Documentation

  • Verbatim text in man pages that wrapped over several lines is now typeset correctly. no more chaos 😭
  • Links within the documentation have been enhanced, and are now checked for correctness. the receipts are verified fr fr βœ…

πŸ› οΈ Tools

  • New nbdcopy(1) tool lets you copy between an NBD server and a local file, or stream to and from an NBD server. copy-paste but make it networking πŸ’…
  • New nbdinfo(1) tool lets you print extended information about an NBD server's exports (Eric Blake). the info dump we actually asked for πŸ“

πŸ§ͺ Tests

Test sockets are created in /tmp (instead of the local directory). This stops the test suite from failing if the local directory path is longer than the Unix domain socket maximum path length. short path, happy path πŸ¦‹

πŸ”₯ Other improvements and bug fixes

  • Trace messages have been improved: long strings are truncated, strings with non-printable characters are escaped, and lists of strings are printed. cleaner logs, cleaner vibes ✨
  • The generator was split from a large single script into several small files. To build from git the OCaml bytecode compiler (ocamlc(1)) is now required instead of the interpreter (ocaml(1)). note the swap, bestie, it's not a drill πŸ’€
  • Long login names are supported in nbd_get_tls_username(3). long names, no problem πŸ’œ
  • The handle name in nbdsh(1) is now set to "nbdsh" (instead of a randomly generated name). she finally has a name πŸŽ€
  • Compatibility with OCaml 4.10.0 and 4.11.0.
  • Python AIO buffer adds a new "is_zero" method allowing Python clients to do sparsification when copying. sparse and slaying πŸ¦‹
  • Compatibility with Python 3.9.
  • External C programs can now be compiled against libnbd's build directory using "../libnbd/run ./configure". go build yourself, icon ✨
  • Honggfuzz can be used as another external fuzzing option. fuzz fuzz fuzz 🐝
  • Fix compilation with glibc 2.32 which deprecates "sys_errlist". ty for the heads up, glibc πŸ™„
  • Many examples added or extended to demonstrate uses of the new APIs (Eric Blake). show don't tell, we love a demo 🌟

🌟 SEE ALSO 🌟

libnbd(3).

πŸ’– AUTHORS πŸ’–

Eric Blake

Richard W.M. Jones

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


mwah πŸ’‹ this page was served up from libnbd-1.25.8, dated 2026-10-13, and it's the release notes for libnbd-release-notes-1.4(1) β€” that's a wrap bestie, go read the other ones 🫢✨

πŸ“¦ where this page comes from