Forum rss-feed

Forum

Developers: EigenD 2.0 branch

STICKY

written by: john

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.

written by: 0beron

Mon, 28 Nov 2011 12:27:58 +0000 GMT

OK, just to get things straight since I'm intending to come along to the devcon, but seem a little behind the curve compared to the more experienced open source folks on here.

For the devcon I need to get to the point where I have my environment set up to build eigenD.

Question is, is that eigenD 2.0 from github, or some other version?

I've managed to build 1.4 after fiddling with OSX 10.4 vs 10.6 libraries and different version of Xcode etc, is this all now irrelevant?

Am I right in saying that I need to wait for the 2.0 release, then pull down the latest 2.0 from github, build what is there somehow once my Xcode and other tools are in order, and then pickup some binary pieces from the main 2.0 release in order to make my build usable with the harp?

Is there any point in me doing anything until 2.0 is released? I suppose I can get the source and build a version that won't have the audio agent, but at least means I know my toolchain is working?


written by: NothanUmber

Mon, 28 Nov 2011 17:43:10 +0000 GMT

No official word - so all I can offer are some assumptions with a grain of salt.

Yes, I also expect that we will work with EigenD2 sources - at least that would make the most sense.
Until now EigenD2 builds like EigenD1.X - so if you can compile the one then you can most probably also compile the other. If you want to be sure just get the EigenD2 branch and try it. Everything should compile through, you will even be able to start. The only thing that is not working is to load setups that contain unavailable agents (e.g. the standard setups).
Until the workshop the commercial version should be available though (as far as I understood), so we can copy in the missing agents.

With that you will probably be as prepared as possible in the current situation (at least that's what I will be installing as long as nobody tells me something else :) )


written by: john

Mon, 28 Nov 2011 18:15:33 +0000 GMT

Hi 0beron

You should be able to build the system from the 2.0 branch on Github right now - its the code we'll be working against at the conference and its only missing a couple of things (unfortunately one of them's the audio agent as you can read earlier in this thread so you'll need to wait for the first 2.0 Experimental release to actually make noises) and it doesn't have any setups yet (we have to redo all the factory ones for 2.0). But is you can compile it without problems then you should be in good shape. Apparently it also builds with GCC 4.2 now (Geert's comment also in this thread), so you should be able to use a recent Xcode.

It won't be very long now (ha ha, 'real soon now') before we make our first 2.0 Experimental release, at which point things will get a lot more fun - you'll be be able to build setups from scratch and copy the missing Agents into your self compiled version to run.

Don't worry about being 'behind the curve' - I'm coming as well and I'm really, really not a C++ guru. I'm writing stuff in it again (after thirteen years away from C++) but it's slow going, so I suspect you'll be way ahead of me.

John


written by: NothanUmber

Thu, 1 Dec 2011 16:23:48 +0000 GMT

Just had a look what is happening in EigenD2 world. One recent changeset caught my eyes: "Get rid of plumber". Is reconnecting agents via Belcanto not planned anymore for v2, so Workbench is mandatory for any kind of connection or disconnection action or is there a replacement in the pipe?


written by: geert

Thu, 1 Dec 2011 16:55:01 +0000 GMT

That's just a rearrangement of the code, if you look at the diff the plumber code has moved to language_plg.py:
https://github.com/Eigenlabs/EigenD/commit/52e8caa3b1238462698b05f8faeca55bf0418b87


written by: NothanUmber

Thu, 1 Dec 2011 17:00:30 +0000 GMT

Ah, good, thanks for the heads up :) Only had a glimpse look at the headline and the initial removal part. This is relieving, not a sledgehammer workbench promotion campaign then :)


written by: barnone

Fri, 2 Dec 2011 16:57:18 +0000 GMT

Just pulled the new 2.0 branch.

All I had to do was copy over the steinberg folder and "make"

No tweaks necessary and it used GCC 4.2.

Nice work. Much cleaner than the 1.4 branch setup.



Please log in to join the discussions