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

Reply via email to