Provided by: nbdkit_1.24.1-2ubuntu4_amd64 bug

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:

       •   Alan Somers

       •   Eric Blake

       •   Richard W.M. Jones

COPYRIGHT

       Copyright (C) 2020-2021 Red Hat Inc.

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.