Revert "ci: skip "lib/test-fork-safe-execvpe.sh" on Alpine Linux"
[libnbd.git] / docs / libnbd-release-notes-1.4.pod
blob494e9f50a45ff5bd44209156d0738aee12fe48c1
1 =head1 NAME
3 libnbd-release-notes-1.4 - release notes for libnbd 1.4
5 =head1 DESCRIPTION
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.
12 =head2 Security
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)>.
20 =head2 New APIs
22 =over 4
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
55 server export.
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
62 server provides.
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)>
73 before connecting.
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)>
79 before connecting.
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.
87 =back
89 Thanks: Eric Blake for all of the new APIs.
91 =head2 New features
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.
99 =head2 Documentation
101 Verbatim text in man pages that wrapped over several lines is now
102 typeset correctly.
104 Links within the documentation have been enhanced, and are now checked
105 for correctness.
107 =head2 Tools
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).
115 =head2 Tests
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
125 printed.
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
151 (Eric Blake).
153 =head1 SEE ALSO
155 L<libnbd(3)>.
157 =head1 AUTHORS
159 Eric Blake
161 Richard W.M. Jones
163 =head1 COPYRIGHT
165 Copyright Red Hat