.\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Podwrapper::Man 1.49.3 (Pod::Simple 3.48) .\" .\" 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 .\" .\" Required to disable full justification in groff 1.23.0. .if n .ds AD l .\" ======================================================================== .\" .IX Title "nbdkit-release-notes-1.40 1" .TH nbdkit-release-notes-1.40 1 2026-09-01 nbdkit-1.49.3 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.40 \- release notes for nbdkit 1.40 .SH DESCRIPTION .IX Header "DESCRIPTION" These are the release notes for nbdkit stable release 1.40. This describes the major changes since 1.38. .PP nbdkit 1.40.0 was released on \fB22 July 2024\fR. .SS Security .IX Subsection "Security" The server is now more careful about quoting user\-provided filenames before printing them in error messages (thanks Mykola Ivanets). .PP Short plugin and filter names (\f(CW"file"\fR is the short name of \&\fBnbdkit\-file\-plugin\fR\|(1)) are now more restrictive. This change should not be visible to users, but tightens up corner cases with possible security implications. See: https://gitlab.com/nbdkit/nbdkit/\-/commit/f4d5e7d39e3d37a498821a87234127d561caa0f5 .PP Previous documentation in \fBnbdkit\-tls\fR\|(1) incorrectly asserted that when using X.509 certificates, nbdkit checks the client\*(Aqs CN. This is not true. nbdkit only checks that the client presents a certificate issued by the Certificate Authority specified by the \&\fI\-\-tls\-certificates\fR directory. The documentation has been corrected. (Thanks Jon Szymaniak, Daniel P. Berrangé). .PP \&\fBnbdkit\-ip\-filter\fR\|(1) incorrectly parsed \f(CW\*(C`security:\*(C'\fR rules, which might subtly change the semantics of access lists. This has been fixed in this release. .PP \&\fBnbdkit\-ip\-filter\fR\|(1) previously allowed unknown [not IPv4/v6, Unix or vsock] socket families implicitly, so having a \f(CW\*(C`deny=all\*(C'\fR rule would not necessarily deny every connection. This has been changed in this release so all unknown socket families are denied. .PP 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\-file\-plugin\fR\|(1) now exposes minimum and preferred I/O size and the rotational property of block devices. .PP \&\fBnbdkit\-curl\-plugin\fR\|(1) prints the version of libcurl and other useful information in \fI\-\-dump\-plugin\fR output. .PP \&\fBnbdkit\-vddk\-plugin\fR\|(1) has been tested with VMware VDDK 8.0.3. .SS Filters .IX Subsection "Filters" New \fBnbdkit\-bzip2\-filter\fR\|(1) supporting bzip2\-compressed images (Georg Pfuetzenreuter). .PP New \fBnbdkit\-rotational\-filter\fR\|(1) which can be used to change the rotational property of a plugin (whether it advertises that it behaves like a spinning hard disk, or RAM / flash storage). .PP New \fBnbdkit\-spinning\-filter\fR\|(1) can be used to add seek delays to simulate a spinning hard disk. .PP \&\fBnbdkit\-ip\-filter\fR\|(1) has new rule types for checking the client\*(Aqs X.509 Distinguished Name (DN) and Issuer\*(Aqs DN. .SS "Language bindings" .IX Subsection "Language bindings" Ruby language support has been removed. This did not work because of a fundamental problem in Ruby\*(Aqs garbage collection. See: https://gitlab.com/nbdkit/nbdkit/\-/commit/7364cbaae809b5ffb6b4dd847cbdd0b368a20024 .SS Server .IX Subsection "Server" New \fI\-\-print\-uri\fR option which prints the URI of the server to help users find the NBD endpoint. .PP Add a common function to find the size of a file or block device which should work properly across Linux and all the BSDs, and use this in several places where we need to know the size of a file or block device (thanks Eric Blake). .PP When generating an NBD URI with TLS enabled, append \&\f(CW\*(C`?tls\-certificates=DIR\*(C'\fR or \f(CW\*(C`?tls\-psk\-key=FILE\*(C'\fR parameter. For libnbd\-based NBD clients this allows the client to find the corresponding TLS credentials. .SS API .IX Subsection "API" New \fBnbdkit_parse_delay\fR\|(3) function which can be used to parse short delays and sleeps, like \f(CW\*(C`100ms\*(C'\fR or \f(CW\*(C`1.2μs\*(C'\fR. It is used by \&\fBnbdkit\-delay\-filter\fR\|(1), \fBnbdkit\-retry\-filter\fR\|(1), \&\fBnbdkit\-retry\-request\-filter\fR\|(1) and \fBnbdkit\-spinning\-filter\fR\|(1). There are also bindings in OCaml and Python. .PP New \fBnbdkit_peer_tls_dn\fR\|(3) and \fBnbdkit_peer_tls_issuer_dn\fR\|(3) to read the client\*(Aqs X.509 certificate Distinguished Name (DN) and Issuer\*(Aqs DN. .SS Documentation .IX Subsection "Documentation" Each nbdkit API function now has a separate manual page, eg. \&\fBnbdkit_parse_size\fR\|(3) and \fBnbdkit_debug\fR\|(3). .PP Fix references to external \fBnbd\-server\fR\|(1) and \fBnbd\-client\fR\|(8) man pages (Vera Wu). .PP Revise the main \fIREADME.md\fR file in the sources. .SS Tests .IX Subsection "Tests" CI updates and fixes (Daniel Berrangé, Eric Blake). .SS Build .IX Subsection "Build" The minimum version of gnutls is now ≥ 3.5.18. .SS Internals .IX Subsection "Internals" Make error checking of \fBioctl\fR\|(2) calls consistent by always checking if the return value \f(CW\*(C`== \-1\*(C'\fR. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBnbdkit\fR\|(1). .SH AUTHORS .IX Header "AUTHORS" Authors of nbdkit 1.40: .IP "Daniel P. Berrangé" 4 .IX Item "Daniel P. Berrangé" .PD 0 .IP "Eric Blake" 4 .IX Item "Eric Blake" .IP "Georg Pfuetzenreuter" 4 .IX Item "Georg Pfuetzenreuter" .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 \*(Aq\*(AqAS IS\*(Aq\*(Aq 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.