On Thu, Sep 12, 2019 at 11:07:07AM +0100, Alex Bennée wrote: > > Peter Maydell <peter.mayd...@linaro.org> writes: > > > On Thu, 12 Sep 2019 at 10:03, Alex Bennée <alex.ben...@linaro.org> wrote: > >> > >> Well the first thing will be we are not intending to offer a guaranteed > >> ABI. While we don't want to be changing it at a whim there shouldn't be > >> an expectation that the plugin interface will maintain backwards > >> compatibility (unlike the command line interface ;-). There should be an > >> expectation that plugins will likely need to be rebuilt against the > >> current source tree from time to time. > > > > Wait, what? From my perspective the whole point of the plugin > > interface is that it should be stable, in that at least there's > > a good chance that a plugin you built will work against multiple > > versions of QEMU, and if it doesn't then it should fail with > > a reasonable error message telling you to update. I'm not > > sure we should be landing the plugins infrastructure if we > > don't have that much stability. > > There is a big fat blurry line between "set in stone" and "not requiring > you to re-engineer the plugin every QEMU release". I'm saying we should > reserve the right to extend and change the plugin API as required but > the expectation would be the plugins will continue to work the same way > but maybe with tweaks to the API hooks to support additional features. > > It's also a pretty young interface so I would expect some evolution once > it is released into the field. > > One problem with the anti-license circumvention measures being suggested > is it will mean having to recompile plugins for any given release. This > isn't a problem for plugins we write but it does add an extra step for > out of tree plugins. Maybe being forced to re-compile (but not change > the source) is a hurdle we are willing to accept?
I can understand & totally support not wishing to break the compilation of plugins for every release, by having a reasonably stable API. I think forcing recompile for each release is reasonable protection to make it less atttractive to create license violating closed source plugins. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|