On 9/24/19 4:23 PM, Richard W.M. Jones wrote:
The cover letter was rather brief, let me try to explain this change
some more ...
When we created libnbd, we needed the definitions of various NBD
protocol things (like protocol message layouts, constants etc). We
copied a header file from nbdkit which provided these. Over time this
header file has diverged from nbdkit's copy.
In fact the libnbd one has been generally enhanced over the nbdkit
version:
- All symbols in libnbd's copy are prefixed by NBD_ or nbd_.
- More coverage of the protocol.
It would be good, not just for nbdkit/libnbd but for other projects,
if we could unify these two files again and publish a liberally
licensed copy as /usr/include/nbd-protocol.h.
And nbdkit definitely has the more-permissive license, as the better
location to stick it.
This commit series does this for nbdkit.
For libnbd there is an associated patch which just synchronizes the
two files. I propose that we eventually change libnbd so that it uses
the public (ie. nbdkit) version, but could fall back to an internal
copy if the public version does not exist (so that libnbd doesn't need
to depend on nbdkit).
It is a quasi-circular dependency: nbdkit depends on libnbd (if you
build libnbd-nbd-plugin), and libnbd depends on nbdkit (if you want the
latest header, rather than an in-tree fallback copied from an earlier
point in time); and both projects like to use the other in their
testsuites. But I think we are still at a point where either project
can be bootstrapped first without the other being installed (test
coverage may be smaller, and nbdkit-nbd-plugin may be omitted, but that
doesn't stop the rest of either package from working).
So the idea sounds fine to me.
--
Eric Blake, Principal Software Engineer
Red Hat, Inc. +1-919-301-3226
Virtualization:
qemu.org |
libvirt.org