.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.38.1 (Pod::Simple 3.43) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "nbdkit-release-notes-1.30 1" .TH nbdkit-release-notes-1.30 1 2024-04-21 nbdkit-1.38.1 NBDKIT .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH NAME nbdkit\-release\-notes\-1.30 \- release notes for nbdkit 1.30 .SH DESCRIPTION .IX Header "DESCRIPTION" These are the release notes for nbdkit stable release 1.30. This describes the major changes since 1.28. .PP nbdkit 1.30.0 was released on \fB24 February 2022\fR. .SS Security .IX Subsection "Security" There were no security issues found. All past security issues and information about how to report new ones can be found in \&\fBnbdkit\-security\fR\|(1). .SS Plugins .IX Subsection "Plugins" \&\fBnbdkit-streaming-plugin\fR has been removed. It was deprecated in 1.26 and scheduled for removal in this release. If you were using this plugin, use \fBnbdcopy\fR\|(1) instead. .PP \&\fBnbdkit\-vddk\-plugin\fR\|(1) has several changes: .IP \(bu 4 This plugin can now create (as well as reading and writing) local VMDK files. See the new \f(CW\*(C`create=true\*(C'\fR option and the various \f(CW\*(C`create\-*\*(C'\fR options. .IP \(bu 4 Read and write is now implemented using the VDDK Async functions, which improves performance. The full nbdkit parallel thread model is supported. .IP \(bu 4 VDDK ≥ 6.5 (released Nov 2016) is now the minimum required version. .IP \(bu 4 Stats collected when using \fI\-D vddk.stats=1\fR have been extended to include number of calls and bytes transferred. .IP \(bu 4 \&\fI\-\-dump\-plugin\fR output now includes the VDDK major version and information about each VDDK API that is implemented by the library. .IP \(bu 4 A new example \fIscripts/vddk\-open.sh\fR is provided to help with automating connections to remote ESXi virtual machines. .PP \&\fBnbdkit\-curl\-plugin\fR\|(1) adds support for choosing TLS/SSL versions and ciphers and TLS 1.3 cipher versions (Przemyslaw Czarnowski). .PP \&\fBnbdkit\-file\-plugin\fR\|(1) now implements \f(CW\*(C`cache=none\*(C'\fR for writes so that the Linux page cache is not destroyed when writing huge files. .PP \&\fBnbdkit\-cc\-plugin\fR\|(1) now implements the \f(CW\*(C`.cleanup\*(C'\fR callback. Also we document how to use this plugin to implement OCaml plugin scripts. .PP \&\fBnbdkit\-info\-plugin\fR\|(1) \fI\-\-dump\-plugin\fR option now prints \&\f(CW\*(C`info_address=yes\*(C'\fR when the platform supports \f(CW\*(C`mode=address\*(C'\fR. .SS Filters .IX Subsection "Filters" New \fBnbdkit\-retry\-request\-filter\fR\|(1), which is similar to \&\fBnbdkit\-retry\-filter\fR\|(1) but only retries a single failing request. .PP New \fBnbdkit\-protect\-filter\fR\|(1) lets you add write-protection over regions of a plugin. .PP New \fBnbdkit\-blocksize\-policy\-filter\fR\|(1) lets you adjust or set the block size constraints and policy of underlying plugins. See "API" below. .PP \&\fBnbdkit\-cow\-filter\fR\|(1) now permits the COW block size to be set as small as 4096 bytes. .PP Debug messages in \fBnbdkit\-error\-filter\fR\|(1) are now easier to read because they no longer all have an \f(CW\*(C`error:\*(C'\fR prefix (Eric Blake). .SS "Language bindings" .IX Subsection "Language bindings" For plugins written in OCaml the minimum version of OCaml is now 4.03 (instead of 4.02.2 previously). Various source-level incompatible changes were made to OCaml plugins in this release. Please consult the new documentation and example if writing plugins in OCaml. .PP OCaml plugins now support \f(CW\*(C`magic_config_key\*(C'\fR. .PP Several fixes to the handling of integers in Python plugins (Nir Soffer). .PP New Python example which simulates request errors (Nir Soffer). .SS Server .IX Subsection "Server" The server no longer requests the \f(CW\*(C`AI_ADDRCONFIG\*(C'\fR hint when opening a server socket. This improves handling of IPv6. In a related change, the \fI\-i\fR (\fI\-\-ipaddr\fR) option now works as intended, and new \fI\-4\fR and \fI\-6\fR options have been added to restrict the listening socket to IPv4 or IPv6 addresses (Laszlo Ersek). .SS API .IX Subsection "API" There is a new \f(CW\*(C`.block_size\*(C'\fR callback for plugins and filters. nbdkit uses this to export block size constraints to clients, specifically the minimum, preferred and maximum block size that clients should use. .PP As well as regular C plugins, \fBnbdkit\-cc\-plugin\fR\|(3), \&\fBnbdkit\-eval\-plugin\fR\|(1), \fBnbdkit\-ocaml\-plugin\fR\|(3), \&\fBnbdkit\-python\-plugin\fR\|(3) and \fBnbdkit\-sh\-plugin\fR\|(3) support block size constraints. \fBnbdkit\-nbd\-plugin\fR\|(1) reexports block size constraints from the proxied NBD server. \fBnbdkit\-vddk\-plugin\fR\|(1) now advertises a minimum 512 byte block size. .PP \&\fBnbdkit\-blocksize\-filter\fR\|(1), \fBnbdkit\-cache\-filter\fR\|(1), \&\fBnbdkit\-cow\-filter\fR\|(1) and \fBnbdkit\-swab\-filter\fR\|(1) adjust block size constraints from plugins (Eric Blake). .PP \&\fBnbdkit\-blocksize\-filter\fR\|(1) can also use the block size hints from the plugin instead of needing manual adjustment on the command line. \&\fBnbdkit\-log\-filter\fR\|(1) logs block size constraints (Eric Blake). .PP \&\fBnbdkit\-blocksize\-policy\-filter\fR\|(1) can be used to add block size constraints to plugins which don't support it, or adjust constraints, or set the error policy. .SS "Bug fixes" .IX Subsection "Bug fixes" \&\fBnbdkit\-memory\-plugin\fR\|(1) (and others), using \&\f(CW\*(C`allocator=malloc,mlock=true\*(C'\fR was broken. This was especially evident on non-Linux or on Linux with 64K pages (eg. POWER). It should now work correctly. .SS Tests .IX Subsection "Tests" \&\f(CW\*(C`./configure \-\-disable\-libguestfs\-tests\*(C'\fR can now be used to disable tests which need libguestfs, without disabling \&\fBnbdkit\-guestfs\-plugin\fR\|(1). .PP We now use \fBmke2fs\fR\|(8) instead of \fBguestfish\fR\|(1) to create the ext4 test image. On armv7 this allows the test suite to run much more quickly. .PP The time taken to run the test suite has been reduced significantly. .SS Build .IX Subsection "Build" Multiple fixes to the Windows (MinGW) build. The test suite should now pass fully if you have the version of Wine with the unofficial \&\f(CW\*(C`AF_UNIX\*(C'\fR patch. .PP The top level \fIbash\fR source directory has been renamed to \&\fIbash-completion\fR. This prevents problems when setting \f(CW$PATH\fR to the source directory and trying to run bash. .SS Internals .IX Subsection "Internals" The performance of the internal vector library has been improved greatly and overflow is now handled correctly (Nir Soffer, Laszlo Ersek and Eric Blake). .PP New "nbdkit\-string.h" header file which defines a common string type (based on vector). Existing places which defined a string based on vector have been updated to use it. .PP \&\f(CW\*(C`MIN\*(C'\fR and \f(CW\*(C`MAX\*(C'\fR macros can be nested (thanks Eric Blake). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBnbdkit\fR\|(1). .SH AUTHORS .IX Header "AUTHORS" Authors of nbdkit 1.30: .IP "Alan Somers" 4 .IX Item "Alan Somers" .PD 0 .IP "Eric Blake" 4 .IX Item "Eric Blake" .IP "Hilko Bengen" 4 .IX Item "Hilko Bengen" .IP "Laszlo Ersek" 4 .IX Item "Laszlo Ersek" .IP "Nir Soffer" 4 .IX Item "Nir Soffer" .IP "Przemyslaw Czarnowski" 4 .IX Item "Przemyslaw Czarnowski" .IP "Richard W.M. Jones" 4 .IX Item "Richard W.M. Jones" .PD .SH COPYRIGHT .IX Header "COPYRIGHT" Copyright Red Hat .SH LICENSE .IX Header "LICENSE" Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: .IP \(bu 4 Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. .IP \(bu 4 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. .IP \(bu 4 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. .PP 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.