Update Red Hat Copyright Notices
[nbdkit.git] / docs / nbdkit-release-notes-1.30.pod
blobf95534eecd25b9db0947d8f0a71202dd298ba578
1 =head1 NAME
3 nbdkit-release-notes-1.30 - release notes for nbdkit 1.30
5 =head1 DESCRIPTION
7 These are the release notes for nbdkit stable release 1.30.
8 This describes the major changes since 1.28.
10 nbdkit 1.30.0 was released on B<24 February 2022>.
12 =head2 Security
14 There were no security issues found.  All past security issues and
15 information about how to report new ones can be found in
16 L<nbdkit-security(1)>.
18 =head2 Plugins
20 B<nbdkit-streaming-plugin> has been removed.  It was deprecated in
21 1.26 and scheduled for removal in this release.  If you were using
22 this plugin, use L<nbdcopy(1)> instead.
24 L<nbdkit-vddk-plugin(1)> has several changes:
26 =over 4
28 =item *
30 This plugin can now create (as well as reading and writing) local VMDK
31 files.  See the new C<create=true> option and the various C<create-*>
32 options.
34 =item *
36 Read and write is now implemented using the VDDK Async functions,
37 which improves performance.  The full nbdkit parallel thread model is
38 supported.
40 =item *
42 VDDK E<ge> 6.5 (released Nov 2016) is now the minimum required
43 version.
45 =item *
47 Stats collected when using I<-D vddk.stats=1> have been extended to
48 include number of calls and bytes transferred.
50 =item *
52 I<--dump-plugin> output now includes the VDDK major version and
53 information about each VDDK API that is implemented by the library.
55 =item *
57 A new example F<scripts/vddk-open.sh> is provided to help with
58 automating connections to remote ESXi virtual machines.
60 =back
62 L<nbdkit-curl-plugin(1)> adds support for choosing TLS/SSL versions
63 and ciphers and TLS 1.3 cipher versions (Przemyslaw Czarnowski).
65 L<nbdkit-file-plugin(1)> now implements C<cache=none> for writes so
66 that the Linux page cache is not destroyed when writing huge files.
68 L<nbdkit-cc-plugin(1)> now implements the C<.cleanup> callback.  Also
69 we document how to use this plugin to implement OCaml plugin scripts.
71 L<nbdkit-info-plugin(1)> I<--dump-plugin> option now prints
72 C<info_address=yes> when the platform supports C<mode=address>.
74 =head2 Filters
76 New L<nbdkit-retry-request-filter(1)>, which is similar to
77 L<nbdkit-retry-filter(1)> but only retries a single failing request.
79 New L<nbdkit-protect-filter(1)> lets you add write-protection over
80 regions of a plugin.
82 New L<nbdkit-blocksize-policy-filter(1)> lets you adjust or set the
83 block size constraints and policy of underlying plugins.  See L</API>
84 below.
86 L<nbdkit-cow-filter(1)> now permits the COW block size to be set as
87 small as 4096 bytes.
89 Debug messages in L<nbdkit-error-filter(1)> are now easier to read
90 because they no longer all have an C<error:> prefix (Eric Blake).
92 =head2 Language bindings
94 For L<plugins written in OCaml|nbdkit-ocaml-plugin(3)> the minimum
95 version of OCaml is now 4.03 (instead of 4.02.2 previously).  Various
96 source-level incompatible changes were made to OCaml plugins in this
97 release.  Please consult the new documentation and example if writing
98 plugins in OCaml.
100 OCaml plugins now support C<magic_config_key>.
102 Several fixes to the handling of integers in Python plugins (Nir
103 Soffer).
105 New Python example which simulates request errors (Nir Soffer).
107 =head2 Server
109 The server no longer requests the C<AI_ADDRCONFIG> hint when opening a
110 server socket.  This improves handling of IPv6.  In a related change,
111 the I<-i> (I<--ipaddr>) option now works as intended, and new I<-4>
112 and I<-6> options have been added to restrict the listening socket to
113 IPv4 or IPv6 addresses (Laszlo Ersek).
115 =head2 API
117 There is a new C<.block_size> callback for plugins and filters.
118 nbdkit uses this to export block size constraints to clients,
119 specifically the minimum, preferred and maximum block size that
120 clients should use.
122 As well as regular C plugins, L<nbdkit-cc-plugin(3)>,
123 L<nbdkit-eval-plugin(1)>, L<nbdkit-ocaml-plugin(3)>,
124 L<nbdkit-python-plugin(3)> and L<nbdkit-sh-plugin(3)> support block
125 size constraints.  L<nbdkit-nbd-plugin(1)> reexports block size
126 constraints from the proxied NBD server.  L<nbdkit-vddk-plugin(1)> now
127 advertises a minimum 512 byte block size.
129 L<nbdkit-blocksize-filter(1)>, L<nbdkit-cache-filter(1)>,
130 L<nbdkit-cow-filter(1)> and L<nbdkit-swab-filter(1)> adjust block size
131 constraints from plugins (Eric Blake).
133 L<nbdkit-blocksize-filter(1)> can also use the block size hints from
134 the plugin instead of needing manual adjustment on the command line.
135 L<nbdkit-log-filter(1)> logs block size constraints (Eric Blake).
137 L<nbdkit-blocksize-policy-filter(1)> can be used to add block size
138 constraints to plugins which don't support it, or adjust constraints,
139 or set the error policy.
141 =head2 Bug fixes
143 L<nbdkit-memory-plugin(1)> (and others), using
144 C<allocator=malloc,mlock=true> was broken.  This was especially
145 evident on non-Linux or on Linux with 64K pages (eg. POWER).  It
146 should now work correctly.
148 =begin comment
150 =head2 Documentation
152 =end comment
154 =head2 Tests
156 C<./configure --disable-libguestfs-tests> can now be used to disable
157 tests which need libguestfs, without disabling
158 L<nbdkit-guestfs-plugin(1)>.
160 We now use L<mke2fs(8)> instead of L<guestfish(1)> to create the ext4
161 test image.  On armv7 this allows the test suite to run much more
162 quickly.
164 The time taken to run the test suite has been reduced significantly.
166 =head2 Build
168 Multiple fixes to the Windows (MinGW) build.  The test suite should
169 now pass fully if you have the version of Wine with the unofficial
170 C<AF_UNIX> patch.
172 The top level F<bash> source directory has been renamed to
173 F<bash-completion>.  This prevents problems when setting C<$PATH> to
174 the source directory and trying to run bash.
176 =head2 Internals
178 The performance of the internal vector library has been improved
179 greatly and overflow is now handled correctly (Nir Soffer, Laszlo
180 Ersek and Eric Blake).
182 New "nbdkit-string.h" header file which defines a common string type
183 (based on vector).  Existing places which defined a string based on
184 vector have been updated to use it.
186 C<MIN> and C<MAX> macros can be nested (thanks Eric Blake).
188 =head1 SEE ALSO
190 L<nbdkit(1)>.
192 =head1 AUTHORS
194 Authors of nbdkit 1.30:
196 =begin comment
198 git shortlog -s v1.28.0..
200 =end comment
202 =over 4
204 =item Alan Somers
206 =item Eric Blake
208 =item Hilko Bengen
210 =item Laszlo Ersek
212 =item Nir Soffer
214 =item Przemyslaw Czarnowski
216 =item Richard W.M. Jones
218 =back
220 =head1 COPYRIGHT
222 Copyright Red Hat