views:

540

answers:

7

I'm interested in a program that does not exist in my favourite programming language. Though, I want to port it to that language.

  1. Am I allowed to port a program, that is published under the GNU GPL, from one programming language to another?

  2. Which licensing issues will occur?

CLARIFICATION

This is not about translating the GUI or output of the application from one (natural) language to another, but about re-writing the software in another programming language.

It is not about i18n!

+4  A: 

First rule of licensing: Never base your decision on the suggestions of random people in a forum/website/...

Always ask a lawyer, only then should you decide.

That being said: You're almost certainly allowed to translate it, if the result is still under the GPL.

If you don't want to release the result under the terms of the GPL, then I highly doubt that it would be legal, but only a lawyer can tell you (and even they are not sure of that, usually).

Joachim Sauer
lawyer... and this is a very good advice
Ubersoldat
Well, yes, thanks.
Joachim Sauer
Lawyer? Come on, this _is_ simple. GPL remains GPL. If you don't distribute, you don't need a lawyer. Distributing GPL software with or without an extra translation is equivalent, no lawyer needed either.
MSalters
@MSalters: That's easy to say if it's about a small, private project where noone cares. But if you start involving companies and money, then you better have someone to blame if a few years later someone sues you. And it is happing.
Joachim Sauer
Your "first rule of licensing" is good, but it's superseded by the "zeroth rule": use your brain. This situation is perfectly clear-cut: if you don't distribute it you can do whatever you want, and if you distribute it you must release it under the GPL. There is nothing you can be sued for.
ShreevatsaR
I tend to agree, if he stays with GPL, he's probably fine. But since the question only asks "Which licensing issue will occur?" and he didn't mention licensing the new product in GPL I couldn't assume that this is what he meant.
Joachim Sauer
@saua : if (as is probably the case) the project already has support for i18n (ie thru gettext), adding a .po file barely qualifies as "a new product".
bruno desthuilliers
@bruno: he's not talking about adding a new natural language (i18n), but translating a program written in C++ to Java (for example)!
Joachim Sauer
+2  A: 

You're free to translate it. But you have to distribute it under the same GPL as the original project.

But why ask here? Just ask the people who are working on that GPL project.

Stefan
+3  A: 

You are not only allowed to translate a free program, but even encouraged to do so. Everyone will be very thankful for your contribution (assuming you contribute your translation, of course, but I don't see any reason to not do so).

wrt/ "licencing issues", it's quite simple : none for your personal use, must respect the GPL if you redistribute your translated version.

But anyway : most OSS projects are i18n ready, so you don't even have to modify the source to add your translation, just provide the appropriate translation files. Then just post these translations to the maintainer of the project, and he'll very certainly incorporate them for everyone else to enjoy.

bruno desthuilliers
Even though this answer was written when the question appeared to be about i18n instead of C++->Java, the first two paragraphs are still perfectly true.
ShreevatsaR
It's the perfect answer, even if the last paragraph deals i18n.
furtelwart
+2  A: 

The GPL license covers programs "that in whole or in part contains or is derived from the Program" and surely any manual or automated translation from one programmming language to another would fall under this and thus requires you to release your translated code under the GPL.

You can however do a clean implementation of the API/ABI of the original GPL program without releasing your work under the GPL.

Ronny Vindenes
+2  A: 

Slight correction to some of these answers:

If you change a GPLed program, you need not release your changes, or the program, or anything else. You are perfectly free to keep them for your own private use, or the use of your company, or whatever.

If you do release your translation to anybody, you have to do it under the GPL. They have the right to source code, and can redistribute it under the GPL. They aren't required to redistribute, any more than you are.

If this is for a personal project, you can just leave it at that. Translate into Java, and either use it yourself or publish it under the GPL. For uses that involve large amounts of money, you might well want to find yourself a competent IP lawyer. The lawyer is unlikely to say anything different, but you don't necessarily want to bet a large project on the legal acumen of random StackOverflow (or Slashdot) posters, no matter how good the odds seem.

David Thornley
+1  A: 

wrt/ PORTING (not translating)

Ok, that's a totally different problem then.

Short answers : 1/ you're of course perfectly free to port an opensource program in another language 2/ wrt/ licensing issues, I strongly suggest you contact the authors of the original program and ask what their position would be. If you find an agreement, fine, else, well, I just can second Sausa here : get a good lawyer. Well, unless it is purely for personal use, of course.

bruno desthuilliers
He does know pretty much what the license terms are, the Gnu General Public License (although he doesn't say which version). The useful thing about a widely-used license like this is that you need to study it once, then you know what it says, and how a whole lot of software is licensed.
David Thornley
@david: But he could make a clean room implementation, and then he could use whatever license he wanted to use!
X-Istence
+1  A: 

If you are interested in learning to translate programming languages, see some translations on rosettacode.

Naveen