nbdkit-release-notes-1.38 - release notes for nbdkit 1.38
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.
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).
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.
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.
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).
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.
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.
Update fio benchmarking documentation (Eric Blake).
Add example of how to export a variable to --run subcommands (Eric Blake).
Fix Cirros CI tests (Peter Krempa).
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.
Important internal structs now contain magic values which are checked by optional assertions, improving type safety.
Authors of nbdkit 1.38:
Copyright Red Hat
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.