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

NAME

6       nbdkit-release-notes-1.22 - release notes for nbdkit 1.22
7

DESCRIPTION

9       These are the release notes for nbdkit stable release 1.22.  This
10       describes the major changes since 1.20.
11
12       nbdkit 1.22.0 was released on 27 August 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-cdi-plugin(1) (Containerized Data Importer) lets you export
21       a single layer from a container image, allowing you to access disk
22       images distributed using container registry infrastructure.
23
24       New nbdkit-ondemand-plugin(1) creates filesystems for clients on
25       demand.
26
27       New nbdkit-torrent-plugin(1) serves a BitTorrent file or magnet link
28       over NBD.
29
30       nbdkit-data-plugin(1) and nbdkit-memory-plugin(1) have a new
31       "allocator" parameter giving more fine-grained control over the
32       allocation strategy.  Currently implemented strategies are: sparse
33       array, sparse array with zstd compression, malloc, and malloc with
34       mlock.
35
36       nbdkit-data-plugin(1) data format now supports strings and alignment.
37       The "disk2data.pl" script has been enhanced to detect repeated
38       sequences and produce a more compact output.
39
40       nbdkit-curl-plugin(1) adds support for arbitrary custom request
41       headers.  Also it now supports scripts for generating cookies and
42       custom request headers.  This is especially useful when accessing web
43       servers that require authentication which has to be renewed
44       periodically.
45
46       nbdkit-curl-plugin(1) now supports HTTP/2 servers (David Edmondson,
47       Pino Toscano, Zi Liu).
48
49       nbdkit-curl-plugin(1) adds support for the "User-Agent" header.
50
51       nbdkit-file-plugin(1) can export multiple files in a directory as
52       separate exports (Eric Blake).
53
54       nbdkit-file-plugin(1) supports new "cache=none" and
55       "fadvise=normal|random|sequential" parameters which can be used to
56       optimize access patterns and avoid filling the page cache.
57
58       nbdkit-nbd-plugin(1) supports proxying to another NBD server over
59       "AF_VSOCK" (Eric Blake).
60
61       nbdkit-nbd-plugin(1) supports new "command=" and "socket-fd="
62       parameters which allow you to run a subordinate NBD server as a command
63       directly from the plugin, or pass in an already connected NBD endpoint.
64
65       nbdkit-streaming-plugin(1) supports streaming to and from local pipes.
66
67       nbdkit-vddk-plugin(1) now has support for VDDK 7.0.  A new and useless
68       "error" message printed by VDDK 7 has been suppressed (thanks Ming Xie,
69       Pino Toscano).
70
71       nbdkit-ext2-plugin has been removed.  It was deprecated in
72       nbdkit 1.17.8.  All existing uses can be replaced with
73       nbdkit-ext2-filter(1).
74
75       The "-" character is now permitted within plugin and filter names (Eric
76       Blake).
77
78   Filters
79       New nbdkit-ddrescue-filter(1) lets you test disk images recovered by
80       ddrescue(1) (François Revol).
81
82       New nbdkit-gzip-filter(1) can decompress a plugin that contains gzip-
83       compressed data.  It replaces nbdkit-gzip-plugin which is deprecated
84       and will be removed in nbdkit 1.26.
85
86       New nbdkit-pause-filter(1) can temporarily stop and later resume NBD
87       requests.  This can be used when taking snapshots.
88
89       New nbdkit-swab-filter(1) swaps bytes in the underlying plugin, which
90       can be used to adjust images that have an incorrect byte order
91       (François Revol).
92
93       New nbdkit-tar-filter(1) reads and writes files inside a tar file in
94       the underlying plugin.  It replaces nbdkit-tar-plugin which is
95       deprecated and will be removed in nbdkit 1.26.
96
97       New nbdkit-tls-fallback-filter(1) provides alternate content when a
98       client connects without using TLS to a server that permits but does not
99       require TLS (Eric Blake).
100
101       nbdkit-fua-filter(1) has new option "fuamode=pass" to pass through FUA
102       and flush requests unchanged (disabling the filter).  A new, unsafe
103       "fuamode=discard" mode was added which discards FUA and flush requests.
104
105   Language bindings
106       New nbdkit-cc-plugin(3) lets you write small nbdkit plugins as inline
107       C, C++ or OCaml "scripts" (and potentially other ahead-of-time compiled
108       programming languages).
109
110       nbdkit-rust-plugin(3) bindings have been replaced by higher level and
111       more idiomatic bindings.  These also support a greater range of server
112       features (Alan Somers).
113
114       nbdkit-python-plugin(3) now supports parallel plugins.  These cannot
115       run Python code in parallel (because of the Python GIL), but for Python
116       code that blocks, eg. calling out to external services, requests can
117       now be handled in parallel (thanks Nir Soffer).
118
119       nbdkit-python-plugin(3) has a greater range of examples (Nir Soffer).
120
121       nbdkit-python-plugin(3) adds support for getting the client export
122       name, calling "nbdkit_debug", and also for extents.
123
124   Server
125       "nbdkit --dump-config" has new fields: "version_major" and
126       "version_minor" to allow easier version parsing from scripts.
127       "host_cpu" and "host_os" so you can find out if nbdkit was cross-
128       compiled for another platform.  "zstd=(yes|no)" so you can find out if
129       nbdkit was compiled with zstd compression support.
130
131       The -e/--exportname option (which never did anything useful previously)
132       is now used to pass the preferred exportname to the --run option.  In
133       general you should never use this option except in very limited and
134       exceptional circumstances (Eric Blake).
135
136   API
137       New ".after_fork" callback which can be used for plugins which need to
138       create background threads, since those threads would otherwise be
139       stranded if the server forks into the background.  The VDDK plugin now
140       defers VDDK library initialization til ".after_fork" because it is
141       thought that the library creates background threads especially when
142       accessing remote servers.
143
144       New API "nbdkit_extents_aligned" is a helper function for filters that
145       retrieves extents as needed until at least a certain range is covered
146       (Eric Blake).
147
148       New "nbdkit_is_tls" can be called to determine if TLS was negotiated on
149       the connection.  Plugins could use this to hide certain exports from
150       non-authenticated/non-encrypted clients (Eric Blake).
151
152       "nbdkit_read_password" with "password=-" will now return an error if
153       the input is not a tty.  Also "password=-FD" is disallowed if the file
154       descriptor is 0, 1 or 2.
155
156   Bug fixes
157       The VDDK plugin was extensively refactored to fix many bugs: Reading
158       passwords from a tty should work again.  The plugin should now work
159       properly when daemonized or using the --run option.  The threading
160       model has been relaxed to "SERIALIZE_REQUESTS" which should give small
161       performance improvements when using multiple connections.
162
163       The "base64" option of nbdkit-data-plugin(1) has been fixed so it sets
164       the implicit size correctly.
165
166       The "<FILE" formatter of nbdkit-data-plugin(1) now works if you use it
167       more than once.
168
169   Documentation
170       New nbdkit-client(1) manual page documents how to mount filesystems
171       from NBD exports on client machines, either directly or using systemd
172       mountpoints.
173
174       Examples now use "NBDKIT_API_VERSION 2" so that the examples match the
175       documentation.
176
177   Tests
178       The tests should now pass on OpenBSD ≥ 6.4.
179
180       tests/Makefile.am was refactored: There is now no longer a single
181       massive "EXTRA_DIST".  Creation of test disks was refactored.
182
183       Some tests will now use new libnbd 1.4 tools nbdcopy(1) and nbdinfo(1)
184       if available, and skip the tests otherwise.
185
186       New test functions "requires_plugin" and "requires_filter" allows tests
187       to be skipped if the corresponding plugin/filter was not compiled on a
188       particular platform.  So tests should now not fail when an optional
189       external library needed by a plugin/filter is not available.
190
191   Build
192       Honggfuzz may now be used for fuzz testing.
193
194       If nbdkit-python-plugin(3) is enabled, Python ≥ 3.6 must be used.
195
196   Internals
197       The export name is now passed down through filter ".open" callbacks,
198       allowing filters to modify the export name passed through to plugins.
199
200       The final thread model is passed to filter ".get_ready" callbacks.
201

SEE ALSO

203       nbdkit(1).
204

AUTHORS

206       Authors of nbdkit 1.22:
207
208       Alan Somers
209           (7 commits)
210
211       Eric Blake
212           (53 commits)
213
214       François Revol
215           (2 commits)
216
217       Nir Soffer
218           (2 commits)
219
220       Richard W.M. Jones
221           (285 commits)
222
224       Copyright (C) 2020 Red Hat Inc.
225

LICENSE

227       Redistribution and use in source and binary forms, with or without
228       modification, are permitted provided that the following conditions are
229       met:
230
231       •   Redistributions of source code must retain the above copyright
232           notice, this list of conditions and the following disclaimer.
233
234       •   Redistributions in binary form must reproduce the above copyright
235           notice, this list of conditions and the following disclaimer in the
236           documentation and/or other materials provided with the
237           distribution.
238
239       •   Neither the name of Red Hat nor the names of its contributors may
240           be used to endorse or promote products derived from this software
241           without specific prior written permission.
242
243       THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY
244       EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
245       IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
246       PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE
247       LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
248       CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
249       SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
250       BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
251       WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
252       OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
253       ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
254
255
256
257nbdkit-1.32.5                     2023-01-03      nbdkit-release-notes-1.22(1)
Impressum