File: libnbd-release-notes-1.4.pod

package info (click to toggle)
libnbd 1.24.0-2.1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 10,956 kB
  • sloc: ansic: 55,158; ml: 12,325; sh: 8,811; python: 4,757; makefile: 3,038; perl: 165; cpp: 24
file content (165 lines) | stat: -rw-r--r-- 4,292 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
=head1 NAME

libnbd-release-notes-1.4 - release notes for libnbd 1.4

=head1 DESCRIPTION

These are the release notes for libnbd stable release 1.4.
This describes the major changes since 1.2.

libnbd 1.4.0 was released on 25 August 2020.

=head2 Security

There were no security issues found in this release.  If you find a
security issue, please read F<SECURITY> in the source (online here:
L<https://gitlab.com/nbdkit/libnbd/blob/master/SECURITY>).  To
find out about previous security issues in libnbd, see
L<libnbd-security(3)>.

=head2 New APIs

=over 4

=item L<nbd_set_opt_mode(3)>

=item L<nbd_get_opt_mode(3)>

=item L<nbd_aio_is_negotiating(3)>

libnbd 1.4 adds a new “negotiating” state during NBD handshaking.  For
backwards compatibility programs must request this before starting the
connection by calling L<nbd_set_opt_mode(3)>.  You can find out if the
connection is in this state by calling L<nbd_aio_is_negotiating(3)>.

For an in-depth description of how this extra state can be used to
negotiate server options, see L<libnbd(3)/CONTROLLING NEGOTIATION>.

=item L<nbd_aio_opt_abort(3)>

=item L<nbd_opt_abort(3)>

During the negotiating state, abort the connection.

=item L<nbd_aio_opt_go(3)>

=item L<nbd_opt_go(3)>

During the negotiating state, complete the handshake.

=item L<nbd_aio_opt_info(3)>

=item L<nbd_opt_info(3)>

During the negotiating state, request full information about the
server export.

=item L<nbd_aio_opt_list(3)>

=item L<nbd_opt_list(3)>

During the negotiating state, request the list of exports that the
server provides.

=item L<nbd_get_block_size(3)>

Return the minimum, preferred or maximum block size constraints for
requests sent to the server.

=item L<nbd_get_canonical_export_name(3)>

Return the canonical export name that the server defaults to.  This
information may only be available if you call L<nbd_set_full_info(3)>
before connecting.

=item L<nbd_get_export_description(3)>

Return the optional text description of the current export.  This
information may only be available if you call L<nbd_set_full_info(3)>
before connecting.

=item L<nbd_set_full_info(3)>

=item L<nbd_get_full_info(3)>

Enable extended information about exports from the server.

=back

Thanks: Eric Blake for all of the new APIs.

=head2 New features

Bindings are now available in the Go programming language.

FreeBSD and OpenBSD are now fully supported platforms.

Bash tab completion is available for all of the command line tools.

=head2 Documentation

Verbatim text in man pages that wrapped over several lines is now
typeset correctly.

Links within the documentation have been enhanced, and are now checked
for correctness.

=head2 Tools

New L<nbdcopy(1)> tool lets you copy between an NBD server and
a local file, or stream to and from an NBD server.

New L<nbdinfo(1)> tool lets you print extended information about an
NBD server’s exports (Eric Blake).

=head2 Tests

Test sockets are created in F</tmp> (instead of the local directory).
This stops the test suite from failing if the local directory path is
longer than the Unix domain socket maximum path length.

=head2 Other improvements and bug fixes

Trace messages have been improved: long strings are truncated, strings
with non-printable characters are escaped, and lists of strings are
printed.

The generator was split from a large single script into several small
files.  To build from git the OCaml bytecode compiler (L<ocamlc(1)>)
is now required instead of the interpreter (L<ocaml(1)>).

Long login names are supported in L<nbd_get_tls_username(3)>.

The handle name in L<nbdsh(1)> is now set to C<nbdsh> (instead of a
randomly generated name).

Compatibility with OCaml 4.10.0 and 4.11.0.

Python AIO buffer adds a new C<is_zero> method allowing Python clients
to do sparsification when copying.

Compatibility with Python 3.9.

External C programs can now be compiled against libnbd’s build
directory using C<../libnbd/run ./configure>.

Honggfuzz can be used as another external fuzzing option.

Fix compilation with glibc 2.32 which deprecates C<sys_errlist>.

Many examples added or extended to demonstrate uses of the new APIs
(Eric Blake).

=head1 SEE ALSO

L<libnbd(3)>.

=head1 AUTHORS

Eric Blake

Richard W.M. Jones

=head1 COPYRIGHT

Copyright Red Hat