1libnbd-release-notes-1.16(1) LIBNBD libnbd-release-notes-1.16(1)
2
3
4
6 libnbd-release-notes-1.16 - release notes for libnbd 1.16
7
9 These are the release notes for libnbd stable release 1.16. This
10 describes the major changes since 1.14.
11
12 libnbd 1.16.0 was released on 18 April 2023.
13
14 Security
15 No security issues were found in this release.
16
17 If you find a security issue, please read SECURITY in the source
18 (online here: https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY).
19 To find out about previous security issues in libnbd, see
20 libnbd-security(3).
21
22 New APIs
23 New API nbd_supports_vsock(3) can be used to test if the client has
24 vsock support (Eric Blake).
25
26 New API nbd_poll2(3) which allows an extra file descriptor to be passed
27 in (Ming Lei).
28
29 New nbd_stats_bytes_sent(3), nbd_stats_bytes_received(3),
30 nbd_stats_chunks_sent(3) and nbd_stats_chunks_received(3) APIs which
31 expose the number of bytes and messages sent and received on the
32 current connection (Eric Blake).
33
34 New nbd_opt_list_meta_context_queries(3) and
35 nbd_aio_opt_list_meta_context_queries(3) APIs allow you to query the
36 available meta contexts interactively with the server during the
37 negotiation phase of the protocol (Eric Blake).
38
39 New nbd_set_request_meta_context(3) lets you control whether the meta
40 context is set during negotiation. This can make certain operations
41 faster, especially "nbdinfo --list". (Eric Blake)
42
43 New nbd_opt_set_meta_context(3), nbd_opt_set_meta_context_queries(3),
44 nbd_aio_opt_set_meta_context(3) and
45 nbd_aio_opt_set_meta_context_queries(3) APIs let you request meta
46 contexts when using nbd_set_opt_mode(3) (Eric Blake).
47
48 New nbd_opt_structured_reply(3) and nbd_aio_opt_structured_reply(3)
49 APIs let you fine-tune when structured replies are requested during the
50 negotiation phase (Eric Blake).
51
52 New nbd_opt_starttls(3) and nbd_aio_opt_starttls(3) APIs let you fine-
53 tune when STARTTLS is negotiated (Eric Blake).
54
55 New nbd_set_socket_activation_name(3) and
56 nbd_get_socket_activation_name(3) APIs which allow you to name the
57 socket used for socket activation. Certain servers such as qemu-
58 storage-daemon will use this name on the command line and in scripts.
59 (Thanks Laszlo Ersek).
60
61 Enhancements to existing APIs
62 nbd_connect_command(3) called with NULL argv parameter previously
63 crashed, but now returns an error (Eric Blake).
64
65 nbd_opt_list_meta_context(3) can now be called without having
66 negotiated structured replies (Eric Blake).
67
68 nbd_set_strict_mode(3) has a new "LIBNBD_STRICT_PAYLOAD" flag which can
69 be used to control whether send oversize messages, in order to test
70 servers (Eric Blake).
71
72 C API pointer parameters that cannot be NULL are now annotated with
73 "attribute((nonnull))" (if the compiler supports it) so that you will
74 get a compile time warning if they are used improperly (thanks Eric
75 Blake).
76
77 C APIs which allocate are now marked with "attribute((malloc))" and
78 similar attributions to improve static analysis of programs using
79 libnbd (Eric Blake).
80
81 C APIs expressing flag values now use unsigned types, removing some
82 undefined corner-cases with bitwise math on signed ints. This change
83 is API and ABI backwards compatible. (Eric Blake)
84
85 Tools
86 New nbdublk(1) program which is used to create a Linux /dev/ublkb<N>
87 block device from an NBD server (thanks Ming Lei).
88
89 nbdinfo(1) now has colorized output (use --no-color to disable).
90
91 nbdinfo has new --is tls and --can structured-reply options to let you
92 test for these features on the server (Eric Blake).
93
94 nbdcopy(1) now writes progress messages to stderr (previously they were
95 written to /dev/tty). This makes it consistent with other tools like
96 dd. (Eric Blake).
97
98 nbdsh(1) options -c and -u can now be interleaved, making it easier to
99 toggle optional URI features (Eric Blake).
100
101 Language bindings
102 Documentation for the OCaml bindings now includes parameter names.
103
104 The OCaml bindings now return OCaml error values in exceptions instead
105 of raw C errno numbers.
106
107 OCaml bindings now support nbd_aio_connect(3) which uses the sockaddr
108 type directly.
109
110 The Python bindings now have an explicit "h.close()" method. Letting
111 the handle go out of scope still works for closing the handle, but now
112 you have the choice to explicitly close the handle before it goes out
113 of scope. If you try to use the handle after closing it, a new
114 "nbd.ClosedHandle" exception will be thrown.
115
116 The Python bindings now provide a contextlib decorated function, so you
117 can write the more natural "with nbd.nbd() as h: ..."
118
119 Tests
120 Wider CI coverage (Eric Blake).
121
122 Other improvements and bug fixes
123 The state machine can now cope with and recover from some bad
124 structured reply messages and unknown cookies sent by the server (Eric
125 Blake).
126
127 The library is now annotated with "-z nodelete", preventing it from
128 being "really" unloaded when you call dlclose(3). This is the only way
129 to prevent a crash in multi-threaded code. See commit 368e3d0d5a887
130 for details.
131
132 Improve debugging when the handle enters the %DEAD state.
133
134 The library is now much more POSIX-compliant and resilient when running
135 subcommands, no longer relying on quirks of the glibc implementation of
136 execvp and other non-async-signal-safe functions (Laszlo Ersek).
137
138 Source files reformatted to use ≤ 80 columns (Laszlo Ersek).
139
140 Build
141 Fix build on Alpine Linux + musl which declares "AF_VSOCK" but does not
142 define the associated structures (Eric Blake).
143
144 Python distutils, deprecated in Python ≥ 3.10, has been replaced by
145 sysconfig (thanks Miro Hrončok).
146
148 libnbd(3).
149
151 Daniel P. Berrangé
152 Eric Blake
153 Laszlo Ersek
154 Ming Lei
155 Richard W.M. Jones
156
158 Copyright Red Hat
159
161 This library is free software; you can redistribute it and/or modify it
162 under the terms of the GNU Lesser General Public License as published
163 by the Free Software Foundation; either version 2 of the License, or
164 (at your option) any later version.
165
166 This library is distributed in the hope that it will be useful, but
167 WITHOUT ANY WARRANTY; without even the implied warranty of
168 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
169 Lesser General Public License for more details.
170
171 You should have received a copy of the GNU Lesser General Public
172 License along with this library; if not, write to the Free Software
173 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
174 02110-1301 USA
175
176
177
178libnbd-1.16.5 2023-09-26 libnbd-release-notes-1.16(1)