NAME

nbdkit-release-notes-1.38 - release notes for nbdkit 1.38

DESCRIPTION

These are the release notes for nbdkit stable release 1.38. This describes the major changes since 1.36.

nbdkit 1.38.0 was released on 5 April 2024.

Security

No security issues were found in this release.

All past security issues and information about how to report new ones can be found in nbdkit-security(1).

Plugins

New nbdkit-gcs-plugin(1) providing support for Google Cloud Storage (Mykola Ivanets).

nbdkit-data-plugin(1), nbdkit-memory-plugin(1), nbdkit-floppy-plugin(1), nbdkit-iso-plugin(1), nbdkit-sparse-random-plugin(1) and nbdkit-torrent-plugin(1) all now advertise suitable minimum, preferred and maximum block sizes, which means clients should be able to access them more efficiently.

nbdkit-vddk-plugin(1) now supports VDDK up to version 8.0.2.1.

nbdkit-S3-plugin(1) now reads sensitive tokens as passwords, allowing more flexibility on how to safely pass them to nbdkit.

Filters

New nbdkit-readonly-filter(1) which allows more fine-grained control over whether a plugin is read-only (and also to change it at runtime) compared to the normal nbdkit -r command line option.

Language bindings

nbdkit-python-plugin(3) adds bindings for nbdkit.is_tls, nbdkit.stdio_safe, nbdkit.nanosleep nbdkit.peer_pid, nbdkit.peer_uid, nbdkit.peer_gid, nbdkit.peer_security_context, nbdkit.read_password.

nbdkit-ocaml-plugin(3) implements zero-copy pread and pwrite calls. This change is not backwards compatible for OCaml plugin code. (Thanks Nicolas Ojeda Bar, Anil Madhavapeddy, Simon Cruanes).

nbdkit-ocaml-plugin also adds extra OCaml version information to --dump-plugin output; and adds an example of how to use debug flags.

nbdkit-rust-plugin(3) minimum Rust version (MSRV) increased to 1.63.0. Various issues found by clippy have been fixed (Alan Somers).

Server

New --no-meta-contexts (--no-mc) option which stops the server from advertising metadata contexts, improving interoperability testing (Eric Blake).

nbdkit --dump-plugin outputs additional fields: The internal soext, either so or dll so you can tell what plugin/filter extension the server is looking for. The max_api_version is the maximum plugin API version supported.

Bug fixes

Fix compilation with GCC 14 (Florian Weimer).

Fix the default block size exposed by nbdkit-S3-plugin(1), fix the zero callback, and other bug fixes (Mykola Ivanets).

nbdkit-luks-filter(1) could enter an infinite loop in some error cases (Wilko Nienhaus).

Several plugins would crash or behave strangely if no parameters were passed. These have been fixed and a regression test added.

Documentation

Update fio benchmarking documentation (Eric Blake).

Add example of how to export a variable to --run subcommands (Eric Blake).

Tests

Fix Cirros CI tests (Peter Krempa).

Build

bash ≥ 4 is required. (This was always true, but now the ./configure script checks it.)

You can now use both environment variables NBDKIT_VALGRIND=1 NBDKIT_GDB=1 together to run valgrind and gdbserver, in order to debug valgrinded nbdkit and plugins.

Internals

Important internal structs now contain magic values which are checked by optional assertions, improving type safety.

SEE ALSO

nbdkit(1).

AUTHORS

Authors of nbdkit 1.38:

Alan Somers
Eric Blake
Mykola Ivanets
Peter Krempa
Richard W.M. Jones

COPYRIGHT

Copyright Red Hat

LICENSE

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.