Provided by: nbdkit_1.40.4-5ubuntu1_amd64 bug

NAME

       nbdkit-release-notes-1.26 - release notes for nbdkit 1.26

DESCRIPTION

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

       nbdkit 1.26.0 was released on 7 June 2021.

       nbdkit is now hosted on gitlab:
       https://listman.redhat.com/archives/libguestfs/2021-February/msg00021.html

   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).

   Plugins
       nbdkit-gzip-plugin and nbdkit-tar-plugin have been removed.  They were deprecated in
       nbdkit 1.22.  The functionality has been replaced by nbdkit-gzip-filter(1) and
       nbdkit-tar-filter(1) respectively.

       nbdkit-streaming-plugin(1) has been deprecated and will be removed in nbdkit 1.30.  You
       can use nbdcopy(1) instead.

       nbdkit-curl-plugin(1) adds these features: "followlocation=false" to disable following
       redirects.  "cookiefile" and "cookiejar" to control saving cookies.

       nbdkit-ssh-plugin(1) now advertises multi-conn if the server is OpenSSH, improving
       performance (Eric Blake).

       nbdkit-ondemand-plugin(1) has a new "wait=true" flag allowing you to choose between
       clients waiting for an export to become free or being immediately rejected.

       nbdkit-sparse-random-plugin(1) now does not generate fully random data within each block.
       Using perf we observed that the plugin was spending 34% of the total time during
       benchmarks just doing this.  You can enable the old behaviour using "random-content=true".

       nbdkit-file-plugin(1) now checks if the file is read-only and exports a read-only NBD
       connection in this case (Eric Blake).

       nbdkit-vddk-plugin(1) has been tested with VDDK 7.0.2.

   Filters
       There is a new API for use by filters to manage "contexts".  Instead of the previous 1-1
       relationship between filter connections and plugin connections, filters can now open more
       than one context into the backend from a single connection, or share contexts between
       connections (Eric Blake).

       New nbdkit-multi-conn-filter(1) which allows you to add multi-conn support to plugins
       which don't support it (although the emulation is expensive), or change whether multi-conn
       is advertised to clients (Eric Blake).

       nbdkit-cow-filter(1) now ignores flush/FUA requests (which are not useful for a temporary
       overlay).  The filter now implements extents and efficient trimming.  Fine-grained locking
       is used around shared structures, greatly improving parallel performance.  Added support
       for multi-conn.

       nbdkit-cache-filter(1) advertises multi-conn when possible (Eric Blake).

       nbdkit-cache-filter and nbdkit-cow-filter can now handle arbitrary sized disks, instead of
       rounding the disk size down.

       nbdkit-blocksize-filter(1) supports parallel requests (Eric Blake).

       nbdkit-checkwrite-filter(1) supports multi-conn (Eric Blake).

       nbdkit-ext2-filter(1) no longer supports multi-conn.  The filter is single-threaded so it
       does not matter, but it was not safe.  Fix trim, zero and flush support (Eric Blake).

       nbdkit-readahead-filter(1) fixes multi-conn support (Eric Blake).

       nbdkit-gzip-filter(1) and nbdkit-xz-filter(1) now both support multi-conn (Eric Blake).

   Language bindings
       nbdkit-python-plugin(3) supports the following new features: "after_fork" and "preconnect"
       methods.  "nbdkit.shutdown()" binding.

       nbdkit-rust-plugin(3) updated for newer Rust compiler versions (Alan Somers).

       nbdkit-golang-plugin(3) now uses and requires golang modules.  Golang ≥ 1.13 must be used.

   API
       New ".cleanup" callback for plugins and filters.  This is called shortly before ".unload",
       but unlike ".unload" it is guaranteed that no plugin or filter code has been dlclosed
       (Eric Blake).

       New "nbdkit_extents_full" is a helper function for filters which can be used to read all
       extents from a plugin covering a region.

   Tests
       Old plugins that we use for testing were rebuilt so they no longer depend on libselinux
       (thanks Thomas Weißschuh).

       nbdkit-ssh-plugin(1) can still be built even if ssh-keygen is unavailable for testing it
       (thanks Thomas Weißschuh).

       Improve tests/test-captive.sh to avoid crashes during testing.

       Test coverage on FreeBSD has been improved, fewer tests should skip unnecessarily.

   Build
       nbdkit and plugins can now be built with -fvisibility=hidden, which allows the compiler to
       make some optimizations.

       Add a dependency so nbdkit is relinked if the linker script (nbdkit.syms) changes (Eric
       Blake).

       xorriso is now preferred over genisoimage or mkisofs (see
       https://wiki.debian.org/genisoimage).

       It is now possible to compile nbdkit with clang with warnings enabled.  Several warnings
       have been suppressed or fixed.

       "MALLOC_CHECK_" and "MALLOC_PERTURB_" are only enabled when running the tests, not when
       running nbdkit from the build directory.  This makes it easier to do benchmarks.

       "nbdkit_peer_*" implemented on OpenBSD.

   Internals
       When fuzzing nbdkit we now recommend using the -t 1 flag (which disables threads).  This
       improves the fuzz-stability of nbdkit.

SEE ALSO

       nbdkit(1).

AUTHORS

       Authors of nbdkit 1.26:

       •   Alan Somers

       •   Eric Blake

       •   Michael Ablassmeier

       •   Richard W.M. Jones

       •   Timm Bäder

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.