Hi
We've now had time to have a decent discussion about how we're going to solve the problem of Agents in the source tree that contain non GPL code. To reiterate, the principal problem is that setups built to use an Agent that we may decide to do a non GPL version of for a while will not load in a system built from the GPL'd code as those Agents will simply not be there. We solved this issue by just pulling the current working branch which is 2.0. There are, as many of you have pointed out, a great number of disadvantages to not having the ability to work on the current code and this is a very crude fix. We don't like it either.
Instead, we've decided to simply remove Agents from the GPL source tree that we want to release non GPL. In order that setups built in the paid for release (that may well use the non GPL'd Agent) can still run in an EigenD that you might build we will be giving instructions as to how all the bits of non GPL Agents can be copied from your paid for binaries into the GPL'd system so that one can run it against your normal setups. This copying process is going to be clumsy (the files that need to be copied or linked to will vary from Agent to Agent and it won't be wholly consistent) to start with, but as I've said before we'll be working on improving this over time - our ambition is that Agents can be easily moved about in the future a well as traded and swapped. It's going to be a
'developers only, not supported' kind of thing for the near future, but Jim reckons it will work fine.
I think this will provide plenty of flexibility in regards to licensing, whilst still making it straightforward to develop and look at EigenD code. It's a little weird as sometimes an Agent might disappear for a while from the source tree if we want to add some groovy new feature that we think is part of the value that paying customers get, but in the absence of some fancy Agent versioning system, which we aren't going to get to implement this side of 2.something, I think it'll do fine. We'll try to announce any Agent removals a way in advance so that anyone who might be coding with one gets to know about it and can discuss it with us beforehand. We'll try not to do it too often.
To give you an idea of why we got in such a pickle over this, the Agent in question for 2.0 is the audio agent. It's getting multiple configurable outputs and inputs in 2.0 and this is one of the nice new features for base level subscribers. This Agent will certainly be dropping fully back into the GPL release, probably for 2.1 or 2.2, but its a great example of an Agent that is important in the system getting a major upgrade that we don't want in the GPL release for a little bit. It's an Agent that is kind of hard to live without in any setup, and one we didn't want to fork for reasons of cruft - we really don't need two kinds of audio in/out in the long run.
So 2.0 will be reappearing on github as soon as we get the necessary rearrangement done.
John
BTW, in terms of an open platform (to NothanUmber), I don't think there is any need to change the EigenD licensing - GPLv3 has excellent protections against Tivoisation, a thing I loathe, and those protections are personally important to me. A binary API coupled with the ability to look at the vast majority of the system source code via the GPL and build a running system from scratch does enable anyone to make and sell Agents whilst still protecting our interests in the broader system - I think that scenario contains the best of all worlds. After two years of considerable change we are now heading towards being able to stabilise and document our Agent interface nicely, and I'd like to see this emerge as part of our collective thinking over the next few months.