3 nbdkit-release-notes-1.26 - release notes for nbdkit 1.26
7 These are the release notes for nbdkit stable release 1.26.
8 This describes the major changes since 1.24.
10 nbdkit 1.26.0 was released on B<7 June 2021>.
12 nbdkit is now hosted on gitlab:
13 L<https://listman.redhat.com/archives/libguestfs/2021-February/msg00021.html>
17 There were no security issues found. All past security issues and
18 information about how to report new ones can be found in
19 L<nbdkit-security(1)>.
29 nbdkit-gzip-plugin and nbdkit-tar-plugin have been removed. They were
30 deprecated in nbdkit 1.22. The functionality has been replaced by
31 L<nbdkit-gzip-filter(1)> and L<nbdkit-tar-filter(1)> respectively.
33 nbdkit-streaming-plugin(1) has been deprecated and will be removed
34 in S<nbdkit 1.30>. You can use L<nbdcopy(1)> instead.
36 L<nbdkit-curl-plugin(1)> adds these features: C<followlocation=false>
37 to disable following redirects. C<cookiefile> and C<cookiejar> to
38 control saving cookies.
40 L<nbdkit-ssh-plugin(1)> now advertises multi-conn if the server is
41 OpenSSH, improving performance (Eric Blake).
43 L<nbdkit-ondemand-plugin(1)> has a new C<wait=true> flag allowing you
44 to choose between clients waiting for an export to become free or
45 being immediately rejected.
47 L<nbdkit-sparse-random-plugin(1)> now does not generate fully random
48 data within each block. Using perf we observed that the plugin was
49 spending 34% of the total time during benchmarks just doing this. You
50 can enable the old behaviour using C<random-content=true>.
52 L<nbdkit-file-plugin(1)> now checks if the file is read-only and
53 exports a read-only NBD connection in this case (Eric Blake).
55 L<nbdkit-vddk-plugin(1)> has been tested with VDDK 7.0.2.
59 There is a new API for use by filters to manage "contexts". Instead
60 of the previous 1-1 relationship between filter connections and plugin
61 connections, filters can now open more than one context into the
62 backend from a single connection, or share contexts between
63 connections (Eric Blake).
65 New L<nbdkit-multi-conn-filter(1)> which allows you to add multi-conn
66 support to plugins which don't support it (although the emulation is
67 expensive), or change whether multi-conn is advertised to clients
70 L<nbdkit-cow-filter(1)> now ignores flush/FUA requests (which are not
71 useful for a temporary overlay). The filter now implements extents
72 and efficient trimming. Fine-grained locking is used around shared
73 structures, greatly improving parallel performance. Added support for
76 L<nbdkit-cache-filter(1)> advertises multi-conn when possible
79 nbdkit-cache-filter and nbdkit-cow-filter can now handle arbitrary
80 sized disks, instead of rounding the disk size down.
82 L<nbdkit-blocksize-filter(1)> supports parallel requests (Eric Blake).
84 L<nbdkit-checkwrite-filter(1)> supports multi-conn (Eric Blake).
86 L<nbdkit-ext2-filter(1)> no longer supports multi-conn. The filter is
87 single-threaded so it does not matter, but it was not safe. Fix trim,
88 zero and flush support (Eric Blake).
90 L<nbdkit-readahead-filter(1)> fixes multi-conn support (Eric Blake).
92 L<nbdkit-gzip-filter(1)> and L<nbdkit-xz-filter(1)> now both support
93 multi-conn (Eric Blake).
95 =head2 Language bindings
97 L<nbdkit-python-plugin(3)> supports the following new features:
98 C<after_fork> and C<preconnect> methods. C<nbdkit.shutdown()>
101 L<nbdkit-rust-plugin(3)> updated for newer Rust compiler versions
104 L<nbdkit-golang-plugin(3)> now uses and requires golang modules.
105 Golang E<ge> 1.13 must be used.
109 New C<.cleanup> callback for plugins and filters. This is called
110 shortly before C<.unload>, but unlike C<.unload> it is guaranteed that
111 no plugin or filter code has been dlclosed (Eric Blake).
113 New C<nbdkit_extents_full> is a helper function for filters which can
114 be used to read all extents from a plugin covering a region.
126 Old plugins that we use for testing were rebuilt so they no longer
127 depend on libselinux (thanks Thomas Weißschuh).
129 L<nbdkit-ssh-plugin(1)> can still be built even if ssh-keygen is
130 unavailable for testing it (thanks Thomas Weißschuh).
132 Improve F<tests/test-captive.sh> to avoid crashes during testing.
134 Test coverage on FreeBSD has been improved, fewer tests should skip
139 nbdkit and plugins can now be built with I<-fvisibility=hidden>, which
140 allows the compiler to make some optimizations.
142 Add a dependency so nbdkit is relinked if the linker script
143 (F<nbdkit.syms>) changes (Eric Blake).
145 xorriso is now preferred over genisoimage or mkisofs (see
146 L<https://wiki.debian.org/genisoimage>).
148 It is now possible to compile nbdkit with clang with warnings enabled.
149 Several warnings have been suppressed or fixed.
151 C<MALLOC_CHECK_> and C<MALLOC_PERTURB_> are only enabled when running
152 the tests, not when running nbdkit from the build directory. This
153 makes it easier to do benchmarks.
155 C<nbdkit_peer_*> implemented on OpenBSD.
159 When fuzzing nbdkit we now recommend using the S<I<-t 1>> flag (which
160 disables threads). This improves the fuzz-stability of nbdkit.
168 Authors of nbdkit 1.26: