Update Red Hat Copyright Notices
[nbdkit.git] / docs / nbdkit-release-notes-1.26.pod
blobd438d5667d237bfd719fe2e84589214e3f9a5dec
1 =head1 NAME
3 nbdkit-release-notes-1.26 - release notes for nbdkit 1.26
5 =head1 DESCRIPTION
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>
15 =head2 Security
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)>.
21 =begin comment
23 =head2 Server
25 =end comment
27 =head2 Plugins
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.
57 =head2 Filters
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
68 (Eric Blake).
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
74 multi-conn.
76 L<nbdkit-cache-filter(1)> advertises multi-conn when possible
77 (Eric Blake).
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()>
99 binding.
101 L<nbdkit-rust-plugin(3)> updated for newer Rust compiler versions
102 (Alan Somers).
104 L<nbdkit-golang-plugin(3)> now uses and requires golang modules.
105 Golang E<ge> 1.13 must be used.
107 =head2 API
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.
116 =begin comment
118 =head2 Bug fixes
120 =head2 Documentation
122 =end comment
124 =head2 Tests
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
135 unnecessarily.
137 =head2 Build
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.
157 =head2 Internals
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.
162 =head1 SEE ALSO
164 L<nbdkit(1)>.
166 =head1 AUTHORS
168 Authors of nbdkit 1.26:
170 =over 4
172 =item *
174 Alan Somers
176 =item *
178 Eric Blake
180 =item *
182 Michael Ablassmeier
184 =item *
186 Richard W.M. Jones
188 =item *
190 Timm Bäder
192 =back
194 =head1 COPYRIGHT
196 Copyright Red Hat