The Source for Java Technology Collaboration
User: Password:



Kirill Grouchnikov

Kirill Grouchnikov's Blog

Genuitec, Hibernate and playing nice with open source

Posted by kirillcool on March 21, 2007 at 08:26 PM | Comments (8)

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.


Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • I don't see why it is a big deal? LGPL does not require to opensource the whole product and Genuitec did provided changes of the modified code. LGPL doesn't say that these changes has to be downloadable as long as interested party can get access to them. As far as we can see Hibernate team wasn't interested. So, what is the fuzz about other then making fuzz?

    Posted by: euxx on March 21, 2007 at 08:57 PM

  • What's an interested party? If Hibernate team was the only one (besides Genuitec) aware of the very fact of the changes made to LGPL code, this doesn't mean that they were the only interested party. Did they publicly announce that Hibernate code has been changed (to either the customers or to the general public)? If not, then what's the difference between this and not letting anyone know at all? And i'm not even getting to the "work based on the library" clause in LGPL.

    Posted by: kirillcool on March 21, 2007 at 09:04 PM

  • Again, LGPL does not require to shout about the derived work on every corner. It is problem of each interested party how they want to find out about this work. And I am not even going to ask why you ignored my question, what is the fuzz about. :-)

    Posted by: euxx on March 21, 2007 at 10:51 PM

  • Eugene - so let's say i'm taking Hibernate code, change it to my liking, run it through obfuscator (optional) and sell it for money (without telling anybody that it's basically derivative version of Hibernate). Say, i'm running it through something like Excelsior so it's native executable (optional). Is it OK for me to do this until somebody finds out (accidentally or not)? Or as long as you don't get caught, it's not cheating (paraphrasing a movie from 30s)? And the fuzz is (allegedly) about taking someone else's work and not respecting the restrictions placed by the original author. Would you be OK if somebody took ASM and disregarded the license terms (until you found out and asked them about it)?

    Posted by: kirillcool on March 21, 2007 at 11:04 PM

  • The current hilarity is a consequence of Genuitec's apparent earlier decision not to accompany binaries with source code where they were derived from open source components, contrary to what one usually does when working with open source components, even when the license does not explicitly mandate it.

    It's just normal customer service in this day and age, so good for Genuitec that they are starting to get it. Sad for them that it required someone outside the company to break it down for them.

    Posted by: robilad on March 22, 2007 at 02:54 AM

  • Big Picture-wise, I think this whole exchange is actually good for the Open Source movement as it is making eveybody more aware of how GPL/LGPL works, and what are the requirements. - eduard/o

    Posted by: pelegri on March 22, 2007 at 10:28 AM

  • I agree with the first poster. Who the f--- cares...seriously. The nastiness that surrounds people from the JBoss camp never ceases to amaze me. Genuitec is probably equally to blame but there always seems to be the JBoss haters that Gavin, Marc, and the rest of the boys are bravely battling against. It's happened enough that I'm beginning to think it might be JBoss' fault. They have a knack for pissing everyone off and then being arrogant jackasses about it.

    Posted by: sackley on March 22, 2007 at 06:22 PM

  • Genuitec does not have to release the source code via the Hibernate team. The can zip it up and make it available on their website.

    Posted by: raykrueger on March 23, 2007 at 04:33 AM





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds