Slashdot Mirror


The Cathedral In The Bazaar?

replicant_deckard writes "This opinion piece I wrote to Open explains how dual licensing (simultaneous use of both GPL and proprietary license) works. Dual licensing gives you basically both the support of the community and a profitable Microsoft-like business model. Seems that this model used by MySQL and TrollTech is getting more popular. Now my question is where are the limits?"

3 of 187 comments (clear)

  1. Perhaps... by lgordon · · Score: 5, Informative

    The author should have researched his "piece" before he had it "published." After reading the article, I found a lot of overview with nothing to say. What? MySQL has both an open source and commerical license? What are the differences? Well, maybe it's on page 2.

  2. Re:How does this work? by frohike · · Score: 5, Informative

    So how does this actually work, legally speaking? I thought the GPL prevented code from changing licenses after being released under the GPL.

    This is a common misconception about the GPL (and about copyright law in general) which we had to deal with when we were talking with some Sega folks a long time ago regarding KallistiOS.

    We first published it under the GPL, which they believed meant that it could never be used in anything except GPL'd software, ever. The very next version we released an updated code base under a "new BSD" license. Everyone was scratching their heads... "How can you do that since you already released it under the GPL? I thought that was it?" The answer is that we still owned 100% of the copyrights in the code base, and we voluntarily issued a new version under the terms of the BSD license. The older version, of course, could still be used under the terms of the GPL since we already licensed it to the public.

    Basically when you own the copyrights for something, you can do whatever you want to do with new versions (or the old versions, depending on how you licensed it to begin with). You can republish the same exact piece under a different license, or you can even pull back in all your new codebase and make it proprietary. The key thing is, has anyone else contributed a copyright to the work that would make it a joint copyright situation? In that case, you'd also need the permission of that contributor to make that and any future license changes.

    Thus we get back to where most Free Software folks understand the situation: e.g., in the Linux kernel, there are about a billion different copyrights on it. Linus, or any one contributor, could never change the license on the kernel. They'd need the permission of every contributor to the kernel, or they'd need to get them to sign over all their copyrights. So once people start contributing to your project, under their own copyright, you can't change the license anymore. You could always rip out their code and publish your own version with a new license, of course, assuming you could distinguish who wrote what code with 100% certainty.

    That's why the article's author went on a long spiel about MySQL vs Linux: MySQL retained 100% of their copyrights, so they can dual license their code base or do whatever they want with it; Linux can not be relicensed that way. If someone contributes code to MySQL AB, I'm assuming they force you to sign over the copyrights before they'll include it in their internal code base. Linus doesn't. This is also, incidentally, one of the major strengths of Linux-style Free Software -- it's de facto free forever, because one company can never make the future official versions of the project proprietary.

    Take all that with a grain of salt, standard CYA/IANAL applies, but I've been studying this crapola for a while on my own :)

  3. Re:This works great by MoThugz · · Score: 5, Informative

    It's not all roses and no thorns you know... Even with a 100% GPL/Open Source product, conflicts can exist between developers/community members that can code. Most of the time, this will result in forks of a project (eg. PHP-Nuke and PostNuke).

    Now imagine a situation when one of the developers for a dual-license software who contributes actively to the product refuses to allow commercial use for his contribution. This can cause havoc to the dev process because the status of the commercial aspect of the software is now questionable.

    If the particular procedure/call/parsing/whatever is rewritable by the other developers then the problem would be minimal. But what if that particular lines of code is an essential part of the end product itself, and that it is just (near) impossible to write a more efficient replacement code?

    You will hear cries of "Fork! Fork! Fork!" in the background baying for blood (or code in this sense). Consider that...