<h2>Get it</h2>
<ul>
-<li> nbdkit ≥ 1.14 (released, available on rawhide).
+<li> nbdkit ≥ 1.15.6
<a href="https://github.com/libguestfs/nbdkit">https://github.com/libguestfs/nbdkit</a>
-<li> libnbd ≥ 1.2 (not yet released).
+<li> libnbd ≥ 1.1.5
<a href="https://github.com/libguestfs/libnbd">https://github.com/libguestfs/libnbd</a>
<li> qemu ≥ 4.2 (not yet released).
<a href="https://qemu.org/">https://qemu.org</a>
{
document.write ("\
<div class=\"plugins\"> \
-<p id=\"caption\">plugins available in nbdkit 1.14</p> \
+<p id=\"caption\">plugins available in nbdkit 1.15.6</p> \
<ul> \
<li id=\"plugin-curl\"> curl \
<li id=\"plugin-data\"> data \
<li id=\"plugin-full\"> full \
<li id=\"plugin-guestfs\"> guestfs \
<li id=\"plugin-gzip\"> gzip \
+<li id=\"plugin-info\"> info \
<li id=\"plugin-iso\"> iso \
<li id=\"plugin-libvirt\"> libvirt \
<li id=\"plugin-linuxdisk\"> linuxdisk \
{
document.write ("\
<div class=\"filters\"> \
-<p class=\"filtercaption\">filters available in nbdkit 1.14</p> \
+<p class=\"filtercaption\">filters available in nbdkit 1.15.6</p> \
<ul> \
<li id=\"filter" + layer + "-blocksize\"> blocksize \
<li id=\"filter" + layer + "-cache\"> cache \
<li id=\"filter" + layer + "-partition\"> partition \
<li id=\"filter" + layer + "-rate\"> rate \
<li id=\"filter" + layer + "-readahead\"> readahead \
+<li id=\"filter" + layer + "-retry\"> retry \
<li id=\"filter" + layer + "-stats\"> stats \
<li id=\"filter" + layer + "-truncate\"> truncate \
<li id=\"filter" + layer + "-xz\"> xz \
- 4700- nbdkit filters/plugins that were adjusted
The qemu implementation was quite trivial (map the new NBD flag to the
-existing BDRV_REQ_NO_FALLBACK flag, in both client and server). But
-to actually get the NBD extension into the protocol, it's better to
-prove that the extension will be interoperable with other NBD
-implementations. So, the obvious second implementation is libnbd for
-a client (adding a new flag to nbd_zero, and support for mapping a new
-errno value, due out in 1.2), and nbdkit for a server (adding a new
-.can_fast_zero callback for plugins and filters, then methodically
-patching all in-tree files where it can be reasonably implemented,
-released in 1.14). Among other things, the nbdkit changes to the
-nozero filter added the parameters I used in my demo for controlling
-whether to advertise and/or honor the semantics of the new flag.
+existing BDRV_REQ_NO_FALLBACK flag, in both client and server, due out
+in qemu 4.2). But to actually get the NBD extension into the
+protocol, it's better to prove that the extension will be
+interoperable with other NBD implementations. So, the obvious second
+implementation is libnbd for a client (adding a new flag to nbd_zero,
+and support for mapping a new errno value, due out in 1.2), and nbdkit
+for a server (adding a new .can_fast_zero callback for plugins and
+filters, then methodically patching all in-tree files where it can be
+reasonably implemented, due out in 1.16). Among other things, the
+nbdkit changes to the nozero filter added the parameters I used in my
+demo for controlling whether to advertise and/or honor the semantics
+of the new flag.
[if time:] Note that the file plugin was not touched in the initial
patches. This is because accurate support is harder than it looks:
#rm -f 6200-vddk.d/fedora.vmdk
#unxz --keep 6200-vddk.d/fedora.vmdk.xz
-# Run techtalk. The demos require nbdkit 1.14, libnbd 1.1.5, and qemu 4.2,
+# Run techtalk. The demos require nbdkit 1.15.6, libnbd 1.1.5, and qemu 4.2,
# which are not present in Fedora 30, so point to self-built versions.
export PATH=$HOME/d/nbdkit:$HOME/d/qemu:$PATH
$HOME/d/libnbd/run techtalk-pse