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 5April2024.
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.
Languagebindingsnbdkit-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.
Bugfixes
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.