Now that some six months has elapsed since the issue with RAD Game Tools’ Bink license emerged, it’s perhaps time explain some of what arose for those who weren’t directly involved.
A couple of people have asked, most recently Jamie Marchant on the MOUL forums, if there might be other problem licenses linked to the CWE sources. I think that most people who are used to reading and understanding licenses among the fan community have had a good dig through the libraries and SDKs and have not found anything else of concern and you need to understand that Bink was a very unusual case, for a number of reasons.
To set the background for the uninitiated here, Cyan’s source code is released under the Gnu Public License version 3 (GPL v3), an “Open Source” license, but that’s not the whole story as CWE makes use of several libraries and Software Development Kits (SDKs) during the process of “building” the client. Some of those libraries and SDKs are also under Open Source licenses, but not all Open Source licenses are equal and some are not compatible with GPL: This can happen because one license will impose a requirement that contradicts a requirement in the other license. Then there are the commercial or closed source licenses that apply to PhysX, DirectX, etc., which are also incompatible with GPL (GPL requires that all the source code of a distributed product should be easy to obtain, which is clearly impossible if the SDK is only offered as a binary without any source code). Some of these incompatible licenses were missed when the CWE source code was initially released under GPL and a re-licensing exercise was required in October 2011 to permit linking with specified GPL non-compliant libraries and SDKs.
RAD Game Tools’ Bink was one of those GPL incompatible, commercial libraries. It came as something of surprise when Chogon contacted OpenUru.org to advise that there was an issue related to Bink and RAD Game Tools were taking exception to the inclusion of Bink material within the CWE sources, since there were no proprietary binaries for Bink included, only a few function “templates” that pointed to bits of the library that could have been used, had the library been present. And this is where it all gets a bit funky. RAD Game Tool’s view here was that those function templates were copied from their SDK and so were under the terms of their license to Cyan Worlds for the use of SDK, and that it was a breach of that license to include it in Open Source software.
There are a number of things to comment on here: Firstly, it’s quite unusual, even for a commercially licensed library, for the copyright owners to be so strict on the use of function templates. In fact it’s often considered good publicity to have examples floating in the wild to show how easily the library can be incorporated into a “real” application. This is the only case I’ve encountered where this restriction exists. Secondly, all the other libraries and SDKs used by CWE have published licenses that allow anyone to review the terms and restrictions, while RAD Game Tools claim to have flexible licensing but what that really means is that they agree license terms on a case-by-case basis with each client under privacy, so there is no standard license text to review. The cynic in me says that such arrangements serve only to allow the licensor to screw the licensee for the maximum amount of revenue without fear of comparison with other clients who may have gotten a better deal. Anyway, only Cyan and RAD in this case could know the applicable terms, so no amount of due diligence on the part of the fans could have found the issue in advance, and this was a licensing nuance that even Cyan had difficulty recognizing.
Finally, it seems that RAD Game Tools’ approach was to reach for their lawyers first, and negotiate second and, without knowing the details, it seemed like they were setting pretty taxing timescales for a remedy. That’s a pretty hardball way to play things, especially when it seems to me that it was quite apparent that Cyan were making best efforts to stay on the right side of the law from the outset. In comparison, the Free Software Foundation (FSF – the body that administers the GPL and other related licenses) will start dealing with license violations of GNU products by working with the violator to try get them compliant and only if there persistent evasion will they resort to legal remedies. Educate and improve rather that whack people over the head with a team of lawyers at the drop of a hat.
I get the sense of a company that is desperate to generate revenue from anything in the absence of real sales, and that does not have any respect for their clients – a pitiful situation. On the other hand, I’m told that the technical guys at RAD were always very helpful, but that is often the way of things – the engineering or technical people just want to make things work, the accountants and legal people can only see $ signs.
So, the summary would be that Bink was a one-off case and unique circumstances kept this a hidden issue. The other licensed items are more visible and open to scrutiny, and similar problems are highly unlikely ever to occur again. But I don’t think you can say “never” and if anyone does find something that looks problematic it’s better alert Cyan quietly by email or PM and give them a chance to fix things before the legal vultures can swoop in.