I am porting a library that somebody else released under BSD-3 license from Fortran to C++. In order to make it run easily under C++, I am using an interface that is only a very minor and almost irrelevant part of the entire library. This interface, however, is part of another code (of which I am the copyright owner) that is released under GPL3. Since the part is minor, is it allowed to include my C++ port with the original project without changing its license?
2 Answers
Since you are the copyright holder of the interface, there is no issue whatsoever. The fact that you have previously included your interface in a GPL-licensed work does not prevent you from including that same interface in a BSD-licensed work. You may offer any number of licenses simultaneously on your own copyrighted work.
If you were not the author of the GPL-licensed work, the situation would be slightly different. The GPL would allow you distribute the interface within another work only if that whole larger work were licensed under the GPL.1 Failure to license the larger work in this way would expose you to legal action from the copyright holder of the interface. However, since the BSD license on the other work is GPL-compatible, it would be completely possible to license the combination in this required way.
- The only possible way around this would be to take the legal gamble that the interface is too simple or mechanical to merit copyright protection, so any copyright license -- such as the GPL -- on it would be void. I would strongly discourage anyone from trying that before talking about your specific case with a legal professional experienced in copyright law.
To address the general issue (and so assuming that you aren't the copyright holder of the GPLv3 code): Why are you using that interface? Is it out of convenience, or because you need it to communicate with other software?
If it's out of convenience, don't. If it's trivial enough to avoid copyright infringement, you should have no difficulty rewriting it.
If it's to communicate with other existing software, you can do that. Although APIs and the like can be copyrighted in the US, it's legal to use them to make compatible software. Copyright is not intended to make it impossible to do something, but to protect creativity. At least in the US, if you can only write compatible software by copying an interface, that isn't a copyright violation.
(In Google vs. Oracle, Oracle claimed that Google hadn't used the Java API to write compatible software, as Oracle claimed conventional Java and Android Java software would be incompatible. Therefore, since Google could use another API, one that Oracle hadn't copyrighted, it was a copyright violation.)
-
Can you clarify the part about "rewriting it"? If I want to use a GPL3 code, can I just rewrite it instead and I escape from GPL3?– Pedro ADec 22, 2018 at 0:06
-
If you take the functionality and write it yourself, you avoid all license complications. If that's too much work, you're taking too much to disregard the license. Dec 22, 2018 at 16:38
-
But wouldn't rewriting it, even if the code is different, be a plagiarism of the idea itself? Is that ok?– Pedro ADec 22, 2018 at 16:52