[Bf-committers] extension clause

Leo Sutic leo.sutic at gmail.com
Thu Nov 18 11:38:37 CET 2010


I just want to raise a point somewhat related to the GPL: A closed
source API must be both stable and a stable ABI, a GPL API need not.

In order for closed source plugins to work reasonably well, the parts of
Blender they interface with must be stable, both in the sense that the
functions work the same, but also in the sense that the data structures
being passed across remain binary layout compatible - otherwise the
plugin won't link against blender, or won't work.

Maintaining a stable programming interface that is binary compatible
with previous versions is a serious undertaking and cost; but essential
if one is to support closed-source code.

If I remember correctly, the Linux kernel only allows GPL drivers partly
because maintaining a stable driver ABI is such a huge cost. libc can be
LGPL, because it is such a very, very stable specification.

My suggestion would be to keep Blender as-is, and let those who want to
distribute closed-source plugins write and maintain their own
GPL-to-non-GPL shim. (Think about it: since Blender Foundation doesn't
own the copyrights to the code, it is in exactly the same situation as
everyone else as far as the GPL is concerned - if BF can write such a
shim, so can everyone else.) That way:

    1. the workload ends up where it should be - let those who want to
interface figure out the legal and technical problems

    2. the shim can be customized to the needs of the closed source code
and updated as needed

/LS


More information about the Bf-committers mailing list