1nbdkit-release-notes-1.26(1) NBDKIT nbdkit-release-notes-1.26(1)
2
3
4
6 nbdkit-release-notes-1.26 - release notes for nbdkit 1.26
7
9 These are the release notes for nbdkit stable release 1.26. This
10 describes the major changes since 1.24.
11
12 nbdkit 1.26.0 was released on 7 June 2021.
13
14 nbdkit is now hosted on gitlab:
15 https://listman.redhat.com/archives/libguestfs/2021-February/msg00021.html
16
17 Security
18 There were no security issues found. All past security issues and
19 information about how to report new ones can be found in
20 nbdkit-security(1).
21
22 Plugins
23 nbdkit-gzip-plugin and nbdkit-tar-plugin have been removed. They were
24 deprecated in nbdkit 1.22. The functionality has been replaced by
25 nbdkit-gzip-filter(1) and nbdkit-tar-filter(1) respectively.
26
27 nbdkit-streaming-plugin(1) has been deprecated and will be removed in
28 nbdkit 1.30. You can use nbdcopy(1) instead.
29
30 nbdkit-curl-plugin(1) adds these features: "followlocation=false" to
31 disable following redirects. "cookiefile" and "cookiejar" to control
32 saving cookies.
33
34 nbdkit-ssh-plugin(1) now advertises multi-conn if the server is
35 OpenSSH, improving performance (Eric Blake).
36
37 nbdkit-ondemand-plugin(1) has a new "wait=true" flag allowing you to
38 choose between clients waiting for an export to become free or being
39 immediately rejected.
40
41 nbdkit-sparse-random-plugin(1) now does not generate fully random data
42 within each block. Using perf we observed that the plugin was spending
43 34% of the total time during benchmarks just doing this. You can
44 enable the old behaviour using "random-content=true".
45
46 nbdkit-file-plugin(1) now checks if the file is read-only and exports a
47 read-only NBD connection in this case (Eric Blake).
48
49 nbdkit-vddk-plugin(1) has been tested with VDDK 7.0.2.
50
51 Filters
52 There is a new API for use by filters to manage "contexts". Instead of
53 the previous 1-1 relationship between filter connections and plugin
54 connections, filters can now open more than one context into the
55 backend from a single connection, or share contexts between connections
56 (Eric Blake).
57
58 New nbdkit-multi-conn-filter(1) which allows you to add multi-conn
59 support to plugins which don't support it (although the emulation is
60 expensive), or change whether multi-conn is advertised to clients (Eric
61 Blake).
62
63 nbdkit-cow-filter(1) now ignores flush/FUA requests (which are not
64 useful for a temporary overlay). The filter now implements extents and
65 efficient trimming. Fine-grained locking is used around shared
66 structures, greatly improving parallel performance. Added support for
67 multi-conn.
68
69 nbdkit-cache-filter(1) advertises multi-conn when possible (Eric
70 Blake).
71
72 nbdkit-cache-filter and nbdkit-cow-filter can now handle arbitrary
73 sized disks, instead of rounding the disk size down.
74
75 nbdkit-blocksize-filter(1) supports parallel requests (Eric Blake).
76
77 nbdkit-checkwrite-filter(1) supports multi-conn (Eric Blake).
78
79 nbdkit-ext2-filter(1) no longer supports multi-conn. The filter is
80 single-threaded so it does not matter, but it was not safe. Fix trim,
81 zero and flush support (Eric Blake).
82
83 nbdkit-readahead-filter(1) fixes multi-conn support (Eric Blake).
84
85 nbdkit-gzip-filter(1) and nbdkit-xz-filter(1) now both support multi-
86 conn (Eric Blake).
87
88 Language bindings
89 nbdkit-python-plugin(3) supports the following new features:
90 "after_fork" and "preconnect" methods. "nbdkit.shutdown()" binding.
91
92 nbdkit-rust-plugin(3) updated for newer Rust compiler versions (Alan
93 Somers).
94
95 nbdkit-golang-plugin(3) now uses and requires golang modules. Golang ≥
96 1.13 must be used.
97
98 API
99 New ".cleanup" callback for plugins and filters. This is called
100 shortly before ".unload", but unlike ".unload" it is guaranteed that no
101 plugin or filter code has been dlclosed (Eric Blake).
102
103 New "nbdkit_extents_full" is a helper function for filters which can be
104 used to read all extents from a plugin covering a region.
105
106 Tests
107 Old plugins that we use for testing were rebuilt so they no longer
108 depend on libselinux (thanks Thomas Weißschuh).
109
110 nbdkit-ssh-plugin(1) can still be built even if ssh-keygen is
111 unavailable for testing it (thanks Thomas Weißschuh).
112
113 Improve tests/test-captive.sh to avoid crashes during testing.
114
115 Test coverage on FreeBSD has been improved, fewer tests should skip
116 unnecessarily.
117
118 Build
119 nbdkit and plugins can now be built with -fvisibility=hidden, which
120 allows the compiler to make some optimizations.
121
122 Add a dependency so nbdkit is relinked if the linker script
123 (nbdkit.syms) changes (Eric Blake).
124
125 xorriso is now preferred over genisoimage or mkisofs (see
126 https://wiki.debian.org/genisoimage).
127
128 It is now possible to compile nbdkit with clang with warnings enabled.
129 Several warnings have been suppressed or fixed.
130
131 "MALLOC_CHECK_" and "MALLOC_PERTURB_" are only enabled when running the
132 tests, not when running nbdkit from the build directory. This makes it
133 easier to do benchmarks.
134
135 "nbdkit_peer_*" implemented on OpenBSD.
136
137 Internals
138 When fuzzing nbdkit we now recommend using the -t 1 flag (which
139 disables threads). This improves the fuzz-stability of nbdkit.
140
142 nbdkit(1).
143
145 Authors of nbdkit 1.26:
146
147 • Alan Somers
148
149 • Eric Blake
150
151 • Michael Ablassmeier
152
153 • Richard W.M. Jones
154
155 • Timm Bäder
156
158 Copyright (C) 2021 Red Hat Inc.
159
161 Redistribution and use in source and binary forms, with or without
162 modification, are permitted provided that the following conditions are
163 met:
164
165 • Redistributions of source code must retain the above copyright
166 notice, this list of conditions and the following disclaimer.
167
168 • Redistributions in binary form must reproduce the above copyright
169 notice, this list of conditions and the following disclaimer in the
170 documentation and/or other materials provided with the
171 distribution.
172
173 • Neither the name of Red Hat nor the names of its contributors may
174 be used to endorse or promote products derived from this software
175 without specific prior written permission.
176
177 THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS'' AND ANY
178 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
179 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
180 PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR CONTRIBUTORS BE
181 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
182 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
183 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
184 BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
185 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
186 OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
187 ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
188
189
190
191nbdkit-1.32.5 2023-01-03 nbdkit-release-notes-1.26(1)