1libnbd-release-notes-1.16(1)        LIBNBD        libnbd-release-notes-1.16(1)
2
3
4

NAME

6       libnbd-release-notes-1.16 - release notes for libnbd 1.16
7

DESCRIPTION

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

SEE ALSO

148       libnbd(3).
149

AUTHORS

151       Daniel P. Berrangé
152       Eric Blake
153       Laszlo Ersek
154       Ming Lei
155       Richard W.M. Jones
156
158       Copyright Red Hat
159

LICENSE

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)
Impressum