3 libnbd-release-notes-1.4 - release notes for libnbd 1.4
7 These are the release notes for libnbd stable release 1.4.
8 This describes the major changes since 1.2.
10 libnbd 1.4.0 was released on 25 August 2020.
14 There were no security issues found in this release. If you find a
15 security issue, please read F<SECURITY> in the source (online here:
16 L<https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY>). To
17 find out about previous security issues in libnbd, see
18 L<libnbd-security(3)>.
24 =item L<nbd_set_opt_mode(3)>
26 =item L<nbd_get_opt_mode(3)>
28 =item L<nbd_aio_is_negotiating(3)>
30 libnbd 1.4 adds a new “negotiating” state during NBD handshaking. For
31 backwards compatibility programs must request this before starting the
32 connection by calling L<nbd_set_opt_mode(3)>. You can find out if the
33 connection is in this state by calling L<nbd_aio_is_negotiating(3)>.
35 For an in-depth description of how this extra state can be used to
36 negotiate server options, see L<libnbd(3)/CONTROLLING NEGOTIATION>.
38 =item L<nbd_aio_opt_abort(3)>
40 =item L<nbd_opt_abort(3)>
42 During the negotiating state, abort the connection.
44 =item L<nbd_aio_opt_go(3)>
46 =item L<nbd_opt_go(3)>
48 During the negotiating state, complete the handshake.
50 =item L<nbd_aio_opt_info(3)>
52 =item L<nbd_opt_info(3)>
54 During the negotiating state, request full information about the
57 =item L<nbd_aio_opt_list(3)>
59 =item L<nbd_opt_list(3)>
61 During the negotiating state, request the list of exports that the
64 =item L<nbd_get_block_size(3)>
66 Return the minimum, preferred or maximum block size constraints for
67 requests sent to the server.
69 =item L<nbd_get_canonical_export_name(3)>
71 Return the canonical export name that the server defaults to. This
72 information may only be available if you call L<nbd_set_full_info(3)>
75 =item L<nbd_get_export_description(3)>
77 Return the optional text description of the current export. This
78 information may only be available if you call L<nbd_set_full_info(3)>
81 =item L<nbd_set_full_info(3)>
83 =item L<nbd_get_full_info(3)>
85 Enable extended information about exports from the server.
89 Thanks: Eric Blake for all of the new APIs.
93 Bindings are now available in the Go programming language.
95 FreeBSD and OpenBSD are now fully supported platforms.
97 Bash tab completion is available for all of the command line tools.
101 Verbatim text in man pages that wrapped over several lines is now
104 Links within the documentation have been enhanced, and are now checked
109 New L<nbdcopy(1)> tool lets you copy between an NBD server and
110 a local file, or stream to and from an NBD server.
112 New L<nbdinfo(1)> tool lets you print extended information about an
113 NBD server’s exports (Eric Blake).
117 Test sockets are created in F</tmp> (instead of the local directory).
118 This stops the test suite from failing if the local directory path is
119 longer than the Unix domain socket maximum path length.
121 =head2 Other improvements and bug fixes
123 Trace messages have been improved: long strings are truncated, strings
124 with non-printable characters are escaped, and lists of strings are
127 The generator was split from a large single script into several small
128 files. To build from git the OCaml bytecode compiler (L<ocamlc(1)>)
129 is now required instead of the interpreter (L<ocaml(1)>).
131 Long login names are supported in L<nbd_get_tls_username(3)>.
133 The handle name in L<nbdsh(1)> is now set to C<nbdsh> (instead of a
134 randomly generated name).
136 Compatibility with OCaml 4.10.0 and 4.11.0.
138 Python AIO buffer adds a new C<is_zero> method allowing Python clients
139 to do sparsification when copying.
141 Compatibility with Python 3.9.
143 External C programs can now be compiled against libnbd’s build
144 directory using C<../libnbd/run ./configure>.
146 Honggfuzz can be used as another external fuzzing option.
148 Fix compilation with glibc 2.32 which deprecates C<sys_errlist>.
150 Many examples added or extended to demonstrate uses of the new APIs