We just changed the way our source code is licensed, this post covers the reasons and details of the changes.

Ever since Media Browser was Video Browser its source was licensed under the GPL v3: license. This meant that no one could use any of the code we wrote in our application without publishing their source code.

This, in my humble opinion, is good.

It means no one can take Media Browser, rename it, package it up and sell it. It also means that we have the right to look at the source code of any projects that are based off a branch of Media Browser. So, for example, Music Browser: has to remain open source under the GPL.

However, the GPL has its problems, the biggest being that it restricts code reuse. Companies usually shy away from looking at any code that is GPL, because of its viral nature. They do not want to end up having to release all their source code just because they used a little GPL class.

I have spent the last few weeks refactoring Media Browser, I defined a bunch of re-usable sub-systems, a logger, a mini persistence framework, an efficient filesystem scanner which is much faster than the .Net one and various helper classes. These components are fairly portable and I would like to be able to use this code in future contracts and projects. I wrote most of this code so of course I can license it however I want. But what happens when people submit fixes? If these classes are GPL the fixes are GPL so I can not re-license the fixes. And then I’m stuck with a ton of code I can not re-use.

So, Media Browser licensing has now changed somewhat. All the unit tests are licensed under the dual MIT and GPL license. All the files below MediaBrowser/Library are licensed under the dual MIT and GPL license.

Further down the line I intend to split off the MediaBrowser/Library directory into its own DLL and perhaps split the project up into the 2 pieces.

At a high level out UI remains GPL (and all the media center specific hacks) but the engine that drives the UI is now licensed under the much more permissive MIT license.


comments powered by Discourse