NAME

nbdkit-release-notes-1.24 - release notes for nbdkit 1.24

DESCRIPTION

These are the release notes for nbdkit stable release 1.24. This describes the major changes since 1.22.

nbdkit 1.24.0 was released on 7 January 2021.

Security

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

Server

The server and a subset of the plugins and filters have been ported to Windows using the Win32 API. Only the mingw-w64 toolchain is supported for building nbdkit (not MSVC). You can also cross-compile from Linux and test under Wine. Some features are missing although it is very usable.

New -D nbdkit.tls.log and -D nbdkit.tls.session debug flags which enable additional debugging for TLS sessions.

The server now responds to NBD_INFO_NAME (Eric Blake).

Options --run and --vsock may now be used together.

In --run, $nbd is now a synonym for $uri instead of having confusing magical properties.

Plugins

New nbdkit-S3-plugin(1) to access disks stored on AWS S3 and Ceph.

New nbdkit-sparse-random-plugin(1) which generates large disks sparsely filled with random blocks of data. These look like virtual disk images and can be used to benchmark copying tools.

nbdkit-data-plugin(1) has been greatly enhanced. New features include: (...)[N:M] (slice syntax), assignments, comments, variables, <(SCRIPT) (inlined shell script). In addition a parse tree is built, allowing optimizations and other enhancements. The plugin is now 64 bit clean allowing patterns larger than 2^32 bytes to work correctly.

nbdkit-random-plugin(1) can now be used to test copying tools.

nbdkit-vddk-plugin(1) supports enabling compression between VDDK and the VMware server which in some situations can improve performance.

Filters

New nbdkit-exportname-filter(1) can be used to extend, mask and modify the exports exposed by a plugin (Eric Blake).

New nbdkit-exitwhen-filter(1) allowing the server to gracefully exit on various events including external scripts.

New nbdkit-checkwrite-filter(1) can be used to benchmark copying tools.

nbdkit-ip-filter(1) now supports filtering clients by PID, user ID or group ID, for clients connected over a Unix domain socket. Also you can filter clients using AF_VSOCK and vsock port number.

nbdkit-log-filter(1) now logs get_ready, after_fork and preconnect methods, and there is a new logscript feature allowing scripts to be run on logging events.

nbdkit-ext2-filter(1) new option ext2file=exportname can be used to allow the client to select which file to see from the filesystem using the NBD export name (Eric Blake).

Language bindings

Python style cleanups (Eric Blake).

The OCaml plugin now correctly acquires and releases the GC lock on all paths in and out.

There is a new OCaml NBDKit.version function returning the version of nbdkit that the plugin was compiled against.

Multiple enhancements to the Rust plugin (Alan Somers).

API

New .list_exports, .default_export and .export_description plugin methods allowing plugins to be queried about what export names they support, and give additional descriptions of exports. New nbdkit_use_default_export helper function (Eric Blake).

New nbdkit_strdup_intern, nbdkit_strndup_intern nbdkit_printf_intern and nbdkit_vprintf_intern functions which allow you to allocate a string in a plugin without worrying about freeing it (Eric Blake).

New nbdkit_peer_pid, nbdkit_peer_uid and nbdkit_peer_gid allows plugins and filters to read the client’s credentials, for clients connected over a Unix domain socket.

Tests

Many tests now use libnbd(3), nbdsh(1), nbdinfo(1) and nbdcopy(1) as lighter weight replacements for qemu tools.

Fix compatibility with qemu > 5.2.0.

Build

Downstream packagers can now use this to add extra downstream information which is printed in version strings etc: ./configure --with-extra=...

If ocamldoc(1) is installed at build time, then it will be used to build the NBDKit(3) manual page for OCaml documentation.

SEE ALSO

nbdkit(1).

AUTHORS

Authors of nbdkit 1.24:

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.