views:

225

answers:

5

If I were to port a GPL'ed library to a different language:

  1. Would it count as a derivate work and would I have to release my port with the same GPL?

  2. If the answer to the above question is yes, who would be considered the owner of the ported library? Would I be the owner and be able to relicense and use it in a commercial application?

I am OK with releasing the port under the GPL, but I want to be able to use it (personally) in my non-GPL'ed works.

+4  A: 

First of all, why don't you ask the owners of the library what they think?

Second, my guess is that, yes, a port is a derivative work. It would not exist without the original work.

John Saunders
+1  A: 

Have you tried contacting the original author? It might only take an Email to dodge this licence problem, and I'm sure he'd love that someone is porting his library for free

Paul Betts
A: 

I believe a direct port would be considered derivative work. So would any port which does not substantially alter the method in which the library works, or the job which it performs.

With software art its pretty hairy to prove that your library functions significantly differently from the base logic implementation of another author especially if it does basically the same thing.

GrayWizardx
+2  A: 
  1. You're modifying the code. That's fine as long as you don't distribute it but the exact nature of this depends on if you're using GPL v2 or v3 (I believe v3 uses the term conveyance and it has a broader meaning);
  2. If you're going to distribute that commercial application not only do you have to release the source code for your changes but in all likelihood for your complete application as well (and this is regardless of whether you modified the GPLed code or not).

"Ownership" doesn't mean a lot here. I can take a copy of the GPLed source code for, say, MySQL and release a database called FrogDB with modified or even unmodified MySQL source code. As long as I comply with the license there is nothing stopping me from doing this.

So you can create a version in another language and call it "RubyXYZ" instead of "XYZ" or give it a completely different name. Doesn't matter. Attribution and the GPL will still be required. Someone else could still do their own version of "yours" however.

Porting to another language is a significant work. You might be better off starting from scratch and not using the other library as a base at all. Then you can give it whatever license you want as long as it isn't a derivative in any way.

cletus
#2 is exactly what the LGPL is supposed to address: a GPL library in a non-GPL application. As you mention, we need more information.
Jay Bazuzi
+3  A: 

If you look at the original source to make the port, it would be a derived work, and you and the owners of the original code base would be joint owners (meaning that they have to agree to commercial relicensing).

Thilo
@Thilo, Without a link to some credible source, or a statement that you are in fact a copyright lawyer or something like that, this opinion should not be relied upon.
Peter Hansen
@Peter: True. Like you say, this is a layman's opinion, worth as much as you paid for it.
Thilo