libnbd-release-notes-1.4(1) LIBNBD libnbd-release-notes-1.4(1)

# [NAME](#NAME)

libnbd-release-notes-1.4 - release notes for libnbd 1.4

# [DESCRIPTION](#DESCRIPTION)

These are the release notes for libnbd stable release 1.4. This describes the major changes since 1.2.

libnbd 1.4.0 was released on 25 August 2020.

## [Security](#Security)

There were no security issues found in this release. If you find a security issue, please read *SECURITY* in the source (online here: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY). To find out about previous security issues in libnbd, see [**libnbd-security**(3)](/man/os/libnbd/libnbd-security.3).

## [New APIs](#New_APIs)

[**nbd\_set\_opt\_mode**(3)](/man/os/libnbd/nbd_set_opt_mode.3)

[**nbd\_get\_opt\_mode**(3)](/man/os/libnbd/nbd_get_opt_mode.3)

[**nbd\_aio\_is\_negotiating**(3)](/man/os/libnbd/nbd_aio_is_negotiating.3)

libnbd 1.4 adds a new “negotiating” state during NBD handshaking. For backwards compatibility programs must request this before starting the connection by calling [**nbd\_set\_opt\_mode**(3)](/man/os/libnbd/nbd_set_opt_mode.3). You can find out if the connection is in this state by calling [**nbd\_aio\_is\_negotiating**(3)](/man/os/libnbd/nbd_aio_is_negotiating.3).

For an in-depth description of how this extra state can be used to negotiate server options, see "CONTROLLING NEGOTIATION" in [**libnbd**(3)](/man/os/libnbd/libnbd.3).

[**nbd\_aio\_opt\_abort**(3)](/man/os/libnbd/nbd_aio_opt_abort.3)

[**nbd\_opt\_abort**(3)](/man/os/libnbd/nbd_opt_abort.3)

During the negotiating state, abort the connection.

[**nbd\_aio\_opt\_go**(3)](/man/os/libnbd/nbd_aio_opt_go.3)

[**nbd\_opt\_go**(3)](/man/os/libnbd/nbd_opt_go.3)

During the negotiating state, complete the handshake.

[**nbd\_aio\_opt\_info**(3)](/man/os/libnbd/nbd_aio_opt_info.3)

[**nbd\_opt\_info**(3)](/man/os/libnbd/nbd_opt_info.3)

During the negotiating state, request full information about the server export.

[**nbd\_aio\_opt\_list**(3)](/man/os/libnbd/nbd_aio_opt_list.3)

[**nbd\_opt\_list**(3)](/man/os/libnbd/nbd_opt_list.3)

During the negotiating state, request the list of exports that the server provides.

[**nbd\_get\_block\_size**(3)](/man/os/libnbd/nbd_get_block_size.3)

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

[**nbd\_get\_canonical\_export\_name**(3)](/man/os/libnbd/nbd_get_canonical_export_name.3)

Return the canonical export name that the server defaults to. This information may only be available if you call [**nbd\_set\_full\_info**(3)](/man/os/libnbd/nbd_set_full_info.3) before connecting.

[**nbd\_get\_export\_description**(3)](/man/os/libnbd/nbd_get_export_description.3)

Return the optional text description of the current export. This information may only be available if you call [**nbd\_set\_full\_info**(3)](/man/os/libnbd/nbd_set_full_info.3) before connecting.

[**nbd\_set\_full\_info**(3)](/man/os/libnbd/nbd_set_full_info.3)

[**nbd\_get\_full\_info**(3)](/man/os/libnbd/nbd_get_full_info.3)

Enable extended information about exports from the server.

Thanks: Eric Blake for all of the new APIs.

## [New features](#New_features)

Bindings are now available in the Go programming language.

FreeBSD and OpenBSD are now fully supported platforms.

Bash tab completion is available for all of the command line tools.

## [Documentation](#Documentation)

Verbatim text in man pages that wrapped over several lines is now typeset correctly.

Links within the documentation have been enhanced, and are now checked for correctness.

## [Tools](#Tools)

New [**nbdcopy**(1)](/man/os/libnbd/nbdcopy.1) tool lets you copy between an NBD server and a local file, or stream to and from an NBD server.

New [**nbdinfo**(1)](/man/os/libnbd/nbdinfo.1) tool lets you print extended information about an NBD server’s exports (Eric Blake).

## [Tests](#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.

## [Other improvements and bug fixes](#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.

The generator was split from a large single script into several small files. To build from git the OCaml bytecode compiler ([**ocamlc**(1)](/man/os/libnbd/ocamlc.1)) is now required instead of the interpreter ([**ocaml**(1)](/man/os/libnbd/ocaml.1)).

Long login names are supported in [**nbd\_get\_tls\_username**(3)](/man/os/libnbd/nbd_get_tls_username.3).

The handle name in [**nbdsh**(1)](/man/os/libnbd/nbdsh.1) is now set to "nbdsh" (instead of a randomly generated 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.

Compatibility with Python 3.9.

External C programs can now be compiled against libnbd’s build directory using "../libnbd/run ./configure".

Honggfuzz can be used as another external fuzzing option.

Fix compilation with glibc 2.32 which deprecates "sys\_errlist".

Many examples added or extended to demonstrate uses of the new APIs (Eric Blake).

# [SEE ALSO](#SEE_ALSO)

[**libnbd**(3)](/man/os/libnbd/libnbd.3).

# [AUTHORS](#AUTHORS)

Eric Blake

Richard W.M. Jones

# [COPYRIGHT](#COPYRIGHT)

Copyright Red Hat

# [LICENSE](#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

2026-10-11 libnbd-1.25.7

---

Document: libnbd-release-notes-1.4(1) from libnbd 1.25.7-r3 (Chainguard OS)
