On Mon, Sep 21, 2020 at 11:23:44AM -0500, Eric Blake wrote:
It's been several weeks since I posted v2 (I got distracted by
improving libnbd to better test things, which in turn surfaced some
major memory leak problems in nbdsh that are now fixed). Many of the
patches are minor rebases from v2, with the biggest changes being
fallout from:
- patch 2: rename nbdkit_add_default_export to nbdkit_use_default_export
- overall: this missed 1.22, so update appropriate documentation
- libnbd's 'nbdinfo --list' differs in behavior between 1.4.0 and 1.4.1
regarding descriptions, so fix the tests to work for both versions
I guess this refers to patch 6 which doesn't use nbdinfo but uses the
Python API instead. Using the Python API is a sensible solution. But
I wanted to add that there's no real reason to try for compatibility
with nbdinfo 1.4.0 since that has been superseded everywhere that
matters by 1.4.1 ... even in RHEL AV 8.3.0 where we will ship
something called "libnbd-1.4.0-X.el8" which is really version 1.4.1.
- rebased on top of rewriting test-layers to use libnbd
- rebased on top of putting nbdkit_*_intern() in place already
I'm probably at the point where it is just worth committing this
series, and dealing with any further changes as followup patches.
I agree with this, but I'll take a quick look this morning to see if
there are any problems I can spot. You can go ahead and push it now
if you want.
Thanks,
Rich.
Key:
[----] : patches are identical
[####] : number of functional differences between upstream/downstream patch
[down] : patch is downstream-only
The flags [FC] indicate (F)unctional and (C)ontextual differences, respectively
001/14:[0059] [FC] 'api: Add .default_export'
002/14:[down] 'api: Add nbdkit_use_default_export'
003/14:[0059] [FC] 'server: Respond to NBD_INFO_NAME request'
004/14:[0021] [FC] 'sh, eval: Implement .default_export'
005/14:[0036] [FC] 'api: Alter .list_exports'
006/14:[0032] [FC] 'api: Add .export_description'
007/14:[0015] [FC] 'exportname: New filter'
008/14:[0049] [FC] 'filters: Add .export_description wrappers'
009/14:[0002] [FC] 'ext2: Supply .list_exports and .default_export'
010/14:[----] [--] 'nbd: Implement .default_export, .export_description'
011/14:[0010] [FC] 'nbd: Add dynamic-export=true option'
012/14:[0002] [FC] 'nbd: Implement .list_exports'
013/14:[0019] [FC] 'python: Implement .list_exports and friends'
014/14:[0017] [FC] 'ocaml: Implement .list_exports and friends'
Eric Blake (14):
api: Add .default_export
api: Add nbdkit_use_default_export
server: Respond to NBD_INFO_NAME request
sh, eval: Implement .default_export
api: Alter .list_exports
api: Add .export_description
exportname: New filter
filters: Add .export_description wrappers
ext2: Supply .list_exports and .default_export
nbd: Implement .default_export, .export_description
nbd: Add dynamic-export=true option
nbd: Implement .list_exports
python: Implement .list_exports and friends
ocaml: Implement .list_exports and friends
docs/nbdkit-filter.pod | 65 +++-
docs/nbdkit-plugin.pod | 112 +++++-
docs/nbdkit-protocol.pod | 14 +
.../exportname/nbdkit-exportname-filter.pod | 154 ++++++++
filters/ext2/nbdkit-ext2-filter.pod | 6 +
filters/log/nbdkit-log-filter.pod | 2 +-
plugins/eval/nbdkit-eval-plugin.pod | 6 +
plugins/file/nbdkit-file-plugin.pod | 9 +-
plugins/nbd/nbdkit-nbd-plugin.pod | 30 +-
plugins/python/nbdkit-python-plugin.pod | 25 ++
plugins/sh/nbdkit-sh-plugin.pod | 39 +-
include/nbdkit-common.h | 2 +
include/nbdkit-filter.h | 13 +-
include/nbdkit-plugin.h | 4 +-
configure.ac | 2 +
filters/exportname/Makefile.am | 67 ++++
tests/Makefile.am | 31 +-
server/internal.h | 15 +-
server/backend.c | 93 +++--
server/exports.c | 32 +-
server/filters.c | 31 +-
server/nbdkit.syms | 1 +
server/plugins.c | 33 +-
server/protocol-handshake-newstyle.c | 88 ++++-
server/test-public.c | 9 +-
plugins/ocaml/NBDKit.mli | 9 +
plugins/sh/methods.h | 2 +
plugins/ocaml/NBDKit.ml | 17 +
plugins/ocaml/example.ml | 33 +-
plugins/cc/cc.c | 73 ++--
plugins/eval/eval.c | 70 ++--
plugins/nbd/nbd.c | 250 +++++++++++--
plugins/ocaml/ocaml.c | 92 ++++-
plugins/ondemand/ondemand.c | 11 +-
plugins/python/python.c | 185 ++++++++--
plugins/sh/methods.c | 84 ++++-
plugins/sh/sh.c | 70 ++--
plugins/sh/example.sh | 2 +-
filters/exportname/exportname.c | 342 ++++++++++++++++++
filters/ext2/ext2.c | 122 +++++--
filters/gzip/gzip.c | 37 +-
filters/log/log.c | 8 +-
filters/partition/partition.c | 56 ++-
filters/tar/tar.c | 46 ++-
filters/tls-fallback/tls-fallback.c | 60 ++-
filters/xz/xz.c | 40 +-
tests/test-eval-exports.sh | 41 ++-
tests/test-export-info.sh | 111 ++++++
tests/test-exportname.sh | 193 ++++++++++
tests/test-ext2-exportname.sh | 73 ++++
tests/test-nbd-dynamic-content.sh | 75 ++++
tests/test-nbd-dynamic-list.sh | 162 +++++++++
tests/test-python-export-list.sh | 71 ++++
tests/test-tls-fallback.sh | 53 ++-
tests/python-export-list.py | 59 +++
tests/test-layers-filter.c | 13 +-
tests/test-layers-plugin.c | 8 +
tests/test-layers.c | 12 +
TODO | 20 +-
59 files changed, 2950 insertions(+), 433 deletions(-)
create mode 100644 filters/exportname/nbdkit-exportname-filter.pod
create mode 100644 filters/exportname/Makefile.am
create mode 100644 filters/exportname/exportname.c
create mode 100755 tests/test-export-info.sh
create mode 100755 tests/test-exportname.sh
create mode 100755 tests/test-ext2-exportname.sh
create mode 100755 tests/test-nbd-dynamic-content.sh
create mode 100755 tests/test-nbd-dynamic-list.sh
create mode 100755 tests/test-python-export-list.sh
create mode 100644 tests/python-export-list.py
--
2.28.0
_______________________________________________
Libguestfs mailing list
Libguestfs(a)redhat.com
https://www.redhat.com/mailman/listinfo/libguestfs
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW