nbdkit-release-notes-1.34(1)

NAME
nbdkit-release-notes-1.34 - release notes for nbdkit 1.34

DESCRIPTION
These are the release notes for nbdkit stable release 1.34. This describes the major changes since 1.32.

nbdkit 1.34.0 was released on 14 April 2023.

  Security
Various sanity checks were added to nbdkit-luks-filter(1) so it can handle untrusted disk images.

TLS support was hardened against a Man-in-the-Middle attacker injecting unknown NBD options before STARTTLS (Eric Blake).

Fix rare assertion failure (denial of service) which can be triggered by clients hanging up early (Eric Blake).

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

  Plugins
New nbdkit-blkio-plugin(1) allows you to easily consume and automate the libblkio high performance storage library. This allows you to (amongst other things) access local vhost-user and VFIO devices (thanks Alberto Faria and Stefan Hajnoczi).

nbdkit-file-plugin(1) has new "fd" and "dirfd" parameters allowing a file or directory to be passed from a parent process through a file descriptor.

Several enhancements were made to nbdkit-curl-plugin(1), concentrating on improved performance and functionality:

•   Multi-conn is now enabled for read-only connections (thanks Eric Blake).

•   Instead of using one libcurl handle per NBD client, we now use a common pool of handles, which improves performance.

•   Fix the "tls13-ciphers" parameter (Michal Orzel).

•   We now use the new CURLOPT_PROTOCOLS_STR(3) feature of libcurl (if available) instead of hard-coding the list of protocols into the plugin.

•   Support was added for forcing "ssl-version", http-version

nbdkit-vddk-plugin(1) now supports VDDK 8 (thanks Ming Xie, Alice Frosi).

nbdkit-torrent-plugin(1) was ported to macOS (Eric Blake).

  Filters
nbdkit-blocksize-policy-filter(1) has a new "blocksize-write-disconnect" to force a disconnection if a client attempts a write larger than a certain threshold (Eric Blake).

nbdkit-retry-filter(1) can now retry plugin open (Eric Blake).

  Language bindings
nbdkit-python-plugin(3) now rejects extra parameters to "export_name" and "shutdown" functions (Eric Blake).

Tracebacks from Python plugins should now include the full method name (Eric Blake).

nbdkit-sh-plugin(3) status codes have changed in this release, although in a way that will normally be backwards compatible with older plugins. Two new status codes are reserved for shutdown server and disconnect client. Check the manual page for details. (Eric Blake)

  Server
"nbdkit --dump-config" now reports "exit_with_parent=yes|no" so you can tell if the optional exit with parent functionality is enabled on the platform.

Debug messages from filters and plugins are now picked out in bold, making them easier to read amongst other nbdkit debug messages.

  API
New "nbdkit_disconnect" API which allows a plugin or filter to drop the connection to the current client (Eric Blake).

  Bug fixes
Fix a deadlock in nbdkit-exitwhen-filter(1) (Piotr Dobrowolski).

Fix the error message in nbdkit-ssh-plugin(1) when the known_hosts file is not readable (thanks Jonathon Jongsma).

  Documentation
The --help output of plugins is now consistent with the manual pages, and extra tests were added to ensure it stays this way.

  Tests
Multiple CI improvements, particularly for Alpine Linux and macOS (Eric Blake).

  Build
Most "./configure"-time features can now be both enabled and disabled using --with-feature and --without-feature (Arsen Arsenović).

Multiple VPATH build problems fixed (Eric Blake).

  Internals
Use Subject Alternative Name instead of commonName in test certificates and suggest its use in documentation (thanks Daniel Berrangé).

Source files reformatted to use ≤ 80 columns (Laszlo Ersek).

SEE ALSO
nbdkit(1).

AUTHORS
Authors of nbdkit 1.34:

Alan Somers
Arsen Arsenović
Daniel P. Berrangé
Eric Blake
Laszlo Ersek
Michal Orzel
Nikolaus Rath
Nir Soffer
Piotr Dobrowolski
Richard W.M. Jones
Thomas Weißschuh

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.