1nbdkit-release-notes-1.18(1)        NBDKIT        nbdkit-release-notes-1.18(1)
2
3
4

NAME

6       nbdkit-release-notes-1.18 - release notes for nbdkit 1.18
7

DESCRIPTION

9       These are the release notes for nbdkit stable release 1.18.  This
10       describes the major changes since 1.16.
11
12       nbdkit 1.18.0 was released on 27th February 2020.
13
14   Security
15       There were no security issues found.  All past security issues and
16       information about how to report new ones can be found in
17       nbdkit-security(1).
18
19   Plugins
20       New nbdkit-eval-plugin(1) lets you write a plugin entirely on a single
21       command line.  It is similar to nbdkit-sh-plugin(3).
22
23       nbdkit-ext2-plugin is deprecated and will be removed in the next
24       release after this one (nbdkit 1.20).  As a replacement use
25       nbdkit-ext2-filter(1) like this:
26
27        nbdkit --filter=ext2 file fs.img ext2file=/disks/disk.raw
28
29       nbdkit-python-plugin(3) now offers a version 2 API which avoids copying
30       the data buffer, improving performance.  The original protocol (now
31       retrospectively called version 1) is still supported for backwards
32       compatibility.  The version 1 protocol was also enhanced to support the
33       buffer protocol for the pread method, and memoryview for pwrite,
34       improving performance by reducing copies (Nir Soffer).
35
36       The Python plugin now prints readable stack traces when an exception is
37       thrown (Nir Soffer).
38
39       New methods implemented in the Python plugin: cache, can_cache,
40       can_zero, can_fast_zero, can_multi_conn, can_fua.
41
42       In nbdkit-curl-plugin(1), new options "cainfo" and "capath" (Wiktor
43       Gołgowski).
44
45       nbdkit-split-plugin(1) now supports extents (Eric Blake).
46
47       In nbdkit-vddk-plugin(1), "file=" is now a magic config key, meaning it
48       can be omitted in most circumstances (Eric Blake).
49
50       The VDDK plugin now no longer needs $LD_LIBRARY_PATH to be set.  The
51       correct library load path is automatically inferred from the "libdir"
52       parameter (Eric Blake).
53
54       Verbose messages about calls to VDDK functions Read and Write can now
55       be suppressed by setting -D vddk.datapath=0.
56
57   Filters
58       New nbdkit-ext2-filter(1), which replaces the deprecated
59       nbdkit-ext2-plugin.  This filter allows you to read and write files
60       inside ext2, ext3 or ext4 filesystems.  The new filter has the same
61       features as the plugin, and one enhancement: optionally the name of the
62       file to serve can be picked from the client-supplied exportname.  The
63       old plugin will be removed in nbdkit 1.20 (Eric Blake).
64
65       New nbdkit-extentlist-filter(1) lets you specify a static list of
66       extents from a file which can be placed on top of plugins which don't
67       export extent information.
68
69       New nbdkit-ip-filter(1) lets you allow and deny incoming connections by
70       client IP address, similar to TCP wrappers or a firewall.
71
72       New nbdkit-nofilter-filter(1) is a null filter, used for testing.
73
74       The stats filter now collects time elapsed per operation, per operation
75       and total rates, and adds stats for the flush method.  The output is
76       shown in human sizes making it easier to understand.  (Nir Soffer).
77
78   Server
79       New --swap option which allows nbdkit to be safely used to serve swap
80       space to the same machine.
81
82       Debug flags (-D) can now be applied to the server core (using
83       -D nbdkit.*).  Underscores in debug flags can now be replaced by dots,
84       allowing a kind of namespacing.  Debug flags which are not consumed now
85       no longer give an error, so you can use them without needing to detect
86       if the plugin supports them.  New server debug flags
87       -D nbdkit.backend.controlpath=0 and -D nbdkit.backend.datapath=0 were
88       added to suppress some very verbose messages when verbose mode is
89       enabled.
90
91   API
92       There is a new ".get_ready" method which is called after
93       ".config_complete" and before the server forks or changes directory.
94       It is the last chance to do any global preparation that is needed to
95       serve connections.  Plugins have previously done this work in
96       ".config_complete", but by splitting this into a new method it makes
97       the API clearer.  (Note that existing plugins may continue to use
98       ".config_complete" for this work if they prefer.)
99
100       There is a new ".preconnect" method available which is called just
101       after the client makes a connection but before any NBD negotiation or
102       TLS authentication is done.  It can be used for early whitelisting or
103       rate limiting of connections, and in particular is used by the new
104       nbdkit-ip-filter(1).
105
106   Bug fixes
107       In nbdkit-curl-plugin(1), "CURLINFO_CONTENT_LENGTH_DOWNLOAD_T" is used
108       (if available) so that file sizes up to 63 bits should now work on all
109       platforms (Pino Toscano and Adrian Ambrożewicz).
110
111       nbdkit is now compatible with OCaml 4.10.
112
113       nbdkit-memory-plugin(1) now supports "size=0" (Eric Blake).
114
115   Documentation
116       Plugins which were actually added in nbdkit 1.0.0 are now documented as
117       such properly.
118
119       Improved methods for probing plugins and filters are documented in
120       nbdkit-probing(1).
121
122   Tests
123       Old plugins from nbdkit 1.0, 1.2, 1.8 and 1.12 are now bundled with the
124       nbdkit sources and tested to try to ensure that they do not
125       accidentally regress.  Note these are included as binary blobs.  See
126       tests/old-plugins/README for more information about this, including how
127       to delete these tests.
128
129       Various tests, especially ones which rely on timeouts, have been made
130       more stable so they should not fail on slow or overloaded machines.
131
132       Many tests now use libnbd and nbdsh (instead of libguestfs and
133       guestfish) as the test client.  This should improve the performance of
134       the tests for most people.
135
136       The --vsock option (added in nbdkit 1.16) can now be tested if the host
137       is running Linux ≥ 5.6 (Stefano Garzarella).
138
139   Build
140       You can use "./configure --disable-nbd-plugin" to completely disable
141       the NBD plugin.
142
143       The automake feature "subdir-objects" is no longer used, which may
144       improve compatibility on platforms with ancient and buggy automake
145       (RHEL 7 being one such platform).
146
147   Internals
148       The explicit connection parameter passed around many functions in the
149       server is now fetched from thread-local storage.
150
151       The server no longer calls the finalize method if prepare fails.  Also
152       failing to reopen the plugin from nbdkit-retry-filter(1) no longer
153       hangs (Eric Blake).
154
155       "git.orderfile" was enhanced to make patches easier to read (Eric
156       Blake).
157
158       Internal calls to methods like get_size, can_write will now no longer
159       produce debug messages if the data is simply being returned from the
160       internal cache (but calls into the plugin are still logged).
161

SEE ALSO

163       nbdkit(1).
164

AUTHORS

166       Authors of nbdkit 1.18:
167
168       Adrian Ambrożewicz
169           (1 commit)
170
171       Eric Blake
172           (30 commits)
173
174       Wiktor Gołgowski
175           (1 commit)
176
177       Richard W.M. Jones
178           (130 commits)
179
180       Nir Soffer
181           (11 commits)
182
183       Pino Toscano
184           (1 commit)
185
187       Copyright (C) 2020 Red Hat Inc.
188

LICENSE

190       Redistribution and use in source and binary forms, with or without
191       modification, are permitted provided that the following conditions are
192       met:
193
194       •   Redistributions of source code must retain the above copyright
195           notice, this list of conditions and the following disclaimer.
196
197       •   Redistributions in binary form must reproduce the above copyright
198           notice, this list of conditions and the following disclaimer in the
199           documentation and/or other materials provided with the
200           distribution.
201
202       •   Neither the name of Red Hat nor the names of its contributors may
203           be used to endorse or promote products derived from this software
204           without specific prior written permission.
205
206       THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY
207       EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
208       IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
209       PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE
210       LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
211       CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
212       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
213       BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
214       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
215       OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
216       ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
217
218
219
220nbdkit-1.30.7                     2022-07-10      nbdkit-release-notes-1.18(1)
Impressum