views:

109

answers:

3

For a project at my company, we need a interpreter. I have two candidates, one licensed under the GPLv2, the other under MIT License (pyMite VM and eLua, respectively). Both will require porting to my target (PowerPC).

Is it possible to pull the code in as a library of some sort, and thus avoid having to release code for the entire project? I understand the MIT License tends to be more permissive in this respect, but is this approach possible for the GPLv2 code?

Releasing the code for the library would not be a problem, but I think that releasing the whole project code would kill the idea with management.

Thanks for the advice.

+1  A: 

If you are binary-linking the GPL code, you will have to release the source code to everything that links directly or indirectly to the binary GPL code - i.e. probably your entire project.

What I mean by "indirectly" is that if you happen to depend on another library whose license is not compatible with the GPL - for example it's proprietary or binary-only - you literally cannot use the GPL library at all. (Unless you want to stop using that proprietary library.)

To my knowledge, the only GPL-family license that doesn't require this is LGPL, which was designed as an option for library developers who wanted to avoid this type of situation.

The MIT License is much more permissive in that all you really have to do is acknowledge the license holder. The license itself is 2-3 paragraphs long and makes it very clear what you're allowed to do, i.e. just about anything.

alexantd
Actually, you can depend on it all you want. It is the user who accepts responsibility for what goes onto their computers. It's not our job as developers to ensure that they're not violating someone's copyright. We certainly want to know if ours is being violated, but it ultimately, is not our responsibility to babysit users. Also, no matter if RMS decrees the sky to be purple or anything of the sort, dynamically linking a library you haven't modified, does not constitute a derivative work under copyright law. The GPLv2 also does not make it explicit his intent. Therefore, it's perfectly fine.
jer
Any form of linking is iffy at best. This is very technical, nitpicky advice that is liable to get the OP's company sued.
alexantd
A: 

The FSF's position on using the GPLv2 to dynamically link into a third party application is a derived work, unless it's a system library (i.e., distributed with the system you are targeting, in section 3 of the GPLv2). Notwithstanding the foregoing, there are other IP law scholars who disagree.

If you want a definitive answer, consult an IP lawyer. I know myself, I believe software should be used if it is useful, and barriers to it being used are not generally desirable. If I have found a library I want to use in a piece of software, one that I may not even include or statically link to, I will still go out of my way to find a work that is available under terms that are more akin with the spirit of how I want to release my code. No practical reason.

jer
+1  A: 

In general:

You cannot do what you're considering with GPL code - linking to a a GPL library is considered a derived work, so the GPL provisions apply to the code that links to the library.

With the MIT license, you are (in general) permitted to derive your own project and release that derived project without releasing any source code. You may have some requirements regarding copyright notices and such.

But really, your company's management, policies, or legal team should be the ones guiding you and making these decisions, since they are policy and legal decisions, not technical decisions.

Michael Burr
Yeah, this will filter to them eventually, but they are really slow (weeks). You guys take about 15 minutes :)
Adam Shiemke
Yeah, but what we say here really doesn't matter...
Michael Burr
Your statement does depend on the jurisdiction. Here in Canada, linking to a dynamic library does not constitute a derivative work. The way our copyright law reads, you have to make a significant modification to the program for it to be considered a derivative work. I.e., not even changing one or two lines in a large system could constitute a derivative work. But courts are the mechanism to decide what is and is not substantial. Safe just to avoid the issue in the first place, but dynamic linking in Soviet Canuckistan is legal against GPL libraries.
jer
@jer: yes, I suppose I should have give the standard IANAL and different jurisdictions have different laws, etc, disclaimers. However, one thing is for certain - regardless of how it might hold up legally, it's for certain that the intent of the GPL is to consider even dynamic linking as being a derivative work. So even if someone might not be legally obligated wherever they are to follow that restriction, they'd certainly be be going against the authors wishes, which is rude if nothing else.
Michael Burr