nbdkit-release-notes-1.38(1)

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:

•   Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

•   Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

•   Neither the name of Red Hat nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

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.