Genuitec, Hibernate and playing nice with open source
It all started on The Server Side where Gavin King accused Genuitec of "skirting waaay to close to an LGPL violation over bundled modifications to Hibernate Tools". Genuitec CEO hasn't addressed this issue, instead choosing to focus on other issues (which sound plausible, but are not relevant to the alleged license violation). Gavin replied by bringing the focus back to the LGPL issue, stating that "Genuitec have decided not to comply with [LGPL] restriction". The ball went back to Genuitec's court and the response is a little surprising, to say the least:
Given their history, I cannot help but fault Genuitec for assuming that providing our source code changes to the Hibernate team would motivate them to accept the enhancements and thereby make the changes public. For that poor assumption, shame on us. We provided the source to all our modification, in good faith, directly to them when they were made. However, since they chose to discard our enhancements, our changes are technically not available to others. But insinuating that we don't comply with their license, or haven't attempted to comply by providing the modified source to them, is extremely disingenuous.
Here is what i read in plain English:
- Genuitec indeed took LGPL code and modified it.
- Genuitec then contacted Hibernate dev team and sent them the modified code.
- Hibernate dev team decided to not accept this code.
- Genuitec proceeded putting this code into their own offering, without releasing the modified code as stipulated by the terms of LGPL
Now, the first three are regular business practice (doesn't matter if you're an open-source or a commercial vendor). Genuitec's business is to provide one-stop-shop for popular technologies. Obviously, Hibernate is one of the leaders in its space, so it's a good candidate for inclusion in MyEclipse offering. Genuitec obviously tries to minimize its overhead by introducing some kind of generic layer. Having made some changes to Hibernate code, they contacted Hibernate team and offered the code back. Hibernate doesn't owe Genuitec much (all those tens of thousands of calls and downloads served both sides, making MyEclipse one of the leading products in its field, so Genuitec shouldn't use these numbers to picture themselves martyrs). For whatever reasons, Hibernate team has decided to reject the code. It has all the right in the world to do so, there's nothing in the license that requires the original codebase to assimilate any outside change.
At this point, Genuitec had the following options:
- Drop the changes they made to Hibernate codebase.
- Change their own code to LGPL and release all of it.
- Refactor the specific changes to a separate module, change the license of that module to LGPL and release the source to the general public as soon as the binaries were made available.
As far as i can tell, none of this happened up until today. Both parties agree that it has taken between 12 to 18 months, Genuitec acknowledges that the code was sent privately to the original developers (and not shipped with MyEclipse binaries / made available on the public website), and Hibernate even alleges that even the module that has now been released under LGPL doesn't constitute a separate body of work (but that's not for me to say).
Somehow, Genuitec tries to shift the blame on to Hibernate. So, you've sent the code and it's been rejected. It's not enough, not according to LGPL. The minute the binaries were available to MyEclipse customers (doesn't matter if they are paying or not), the code should have been made publicly available (at least circa August 2006 when MyEclipse 5.0.1 was released). You can spin it all you want, but for quite some time, the licensing terms have been knowingly violated.
I'm not sure how David and Goliath story fits here. Who's David? Who's Goliath? Wasn't David this witty cunning guy who employed a kind of shady apparatus to beat the other guy (who, on the other hand, would have tried to use his physical traits to his advantage)? But i digress.
A little disclaimer. I have nothing connecting me to any one of these two parties. I've never used Hibernate (ducks), we have an in-house tool to do that, and i've written my share of ODBC / JDBC. I've never used MyEclipse (ducks) as well. I'm also not a free software zealot, in fact almost all of my java.net projects are BSD (Substance module for NetBeans is under CDDL since it was developped on top of the NetBeans code). But i do understand the reasoning behind moving to GPL in this case.
Last thing - it may be only temporary, but at the present time, the download page is not directly accessible from the main MyEclipse page (which also doesn't seem to have a search link, but maybe i'm missing something). In addition, searching for both "Hibernate" and "Open Source" / "Open Source Resources" doesn't seem to produce a link to the above page.