We do not promise API compatibility for filters between stable releases of nbdkit, however, we should at least ensure that when we do break API, that we refuse to load a filter compiled against one version of nbdkit with another server running a different API. A single bump once per stable release is good enough (rather than once per API change).
We did this correctly for commits b0ce4411/cb309687/df0cc21d (bumping to API version 2 for the combined changes between v1.2 and v1.4), but failed to do so for f184fdc3 (affecting v1.10), 4ca66f70 (affecting v1.12), or 5ee7bd29/ee61d232 (affecting the upcoming v1.14). So do it retroacively now, as well as backporting intermediate bumps to affected stable branches. Signed-off-by: Eric Blake <[email protected]> --- I'm pushing this soon. include/nbdkit-filter.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/nbdkit-filter.h b/include/nbdkit-filter.h index 94f17789..1ebd1cb6 100644 --- a/include/nbdkit-filter.h +++ b/include/nbdkit-filter.h @@ -43,7 +43,7 @@ extern "C" { #endif -#define NBDKIT_FILTER_API_VERSION 2 +#define NBDKIT_FILTER_API_VERSION 5 struct nbdkit_extent { uint64_t offset; @@ -100,8 +100,10 @@ struct nbdkit_filter { */ int _api_version; - /* Because there is no ABI guarantee, new fields may be added - * where logically appropriate. */ + /* Because there is no ABI guarantee, new fields may be added where + * logically appropriate, as long as we correctly bump + * NBDKIT_FILTER_API_VERSION once per stable release. + */ const char *name; const char *longname; const char *version; -- 2.21.0 _______________________________________________ Libguestfs mailing list [email protected] https://www.redhat.com/mailman/listinfo/libguestfs
