7

If I fork a library that uses the GPL3 license and heavily modify it, can I then release the new library with an ApacheV2 license?

I actually already did this 2 years ago without putting much thought into it. Now however I'm not so sure I was allowed to do this or what I need to do to comply with the license rules.

I've also contacted the original project's developer for express permission, would that cover any legal issues for my users?

1
  • 2
    This is exactly why a lot of companies have teams of lawyers and expensive scanning software looking at the actual code and files in any open source library they use, rather than trust the maintainer or the license file at the root of the project.
    – ptyx
    Jul 21, 2020 at 17:40

2 Answers 2

12

If I fork a library that uses the GPL3 license and heavily modify it, can I then release the new library with an ApacheV2 license

No, you may not. Your library is still, by your own admission, a derivative of the original GPLv3 code. GPLv3 s5c says that if you convey a derivative work, you must do so under GPLv3.

I've also contacted the original project's developer for express permission, would that cover any legal issues for my users?

If you were to obtain the permission of all the rightsholders in the work you modified (which may well be more than just the original developer, if the project accepted contributions, or if it was in turn built on another GPL work), then yes, you could relicense as you have done.

Now however I'm not so sure I was allowed to do this or what I need to do to comply with the license rules.

Your suspicions are justified. Right now, from what you've written, you're committing copyright infringement, and have been doing so for two years. At the very least, you should immediately stop distributing your code. In my opinion, you should promptly contact everyone who you believe may have taken a copy of your code, and tell them that they have no right to use it. If you have a project website, take it down, and replace it with a clear statement of the problem. And if I were you, I'd also be looking at talking to a lawyer.

4
  • Why do they have no right to use it? Isn't it still effectively under the GPLv3? Then this would mean that they do have the rights to use it, but also have some obligations regarding the distribution of their derivative works.
    – Ruslan
    Jul 21, 2020 at 16:19
  • @Ruslan they are not so labelling it, which is one of the requirements of GPL. See Bart's excellent point about s8 termination provisions.
    – MadHatter
    Jul 21, 2020 at 16:32
  • 1
    I believe this be resolved by relicensing everything as GPLv3 - assuming OP is the only contributor and can make that decision. This would obviously be a problem with some (most?) users of the library - but it might be a better solution (at least temporarily) than taking the code offline. This does not prevent a parallel effort to hunt down all authors of the original code and get their agreement to relicense under Apache.
    – ptyx
    Jul 21, 2020 at 17:37
  • Although the other answer is very good and informative, I did actually obtain permission from the original developer and resolved my case, matching this answer a little closer than the others. Answer accepted. Jun 14, 2021 at 4:48
5

No. But maybe.

The GPL applies to all derivative works as a whole. When you modify some code, that is a derivative work and has to be GPL-licensed.

However, if you can clearly identify parts that are not derivative but entirely your creation, then you can license those parts under any other license as well, including Apache-2.

It is in theory possible that your modifications have amounted to completely rewriting the code base from scratch, and that no traces of the original GPL-covered version can be found. Only then could you license the entire project under Apache-2, but that is very unlikely in practice.

It is unlikely that you will receive permission to use the original code under Apache-2. Instead:

  • update your project's license to GPLv3, which was the real license of the project all along
  • communicate to stakeholders/downstream users that previous versions used Apache-2 erroneously
    • potentially, indicate an alternative they can migrate to, in case they can't use GPL-covered software
  • audit your dependency tree to see if there are license incompatibilities
  • optional: identify components that are not derivative works, and indicate that they are dual GPLv3/Apache-2 licensed

Please also consider GPLv3 section 8, which deals with license termination and reinstatement. You have violated the GPLv3 and are therefore in a temporary state of copyright infringement. If you fix this, your license will be automatically reinstated. However, the copyright holder (i.e. any upstream contributor) can permanently terminate your license within 60 days afterwards if they want to.

6
  • 1
    "It is in theory possible..." that's the Ship of Theseus problem again, and I'm not at all sure I agree with what you say in that paragraph. Good point about s8 termination provisions, though!
    – MadHatter
    Jul 20, 2020 at 20:40
  • 1
    @MadHatter yes, I'm currently in a “it's a different ship” phase. I am fairly certain that this would be the correct result under German copyright laws, which allows highly transformative adaptations if the creative elements of the original fade away in the adaptation. No idea about NL though, where OP seems to be.
    – amon
    Jul 20, 2020 at 21:04
  • Isn't this what Linux does? A complete rewrite of Unix that (essentially) duplicates Unix but has entirely new code?
    – Stephen R
    Jul 21, 2020 at 15:38
  • 2
    @StephenR The Linux kernel is an entirely independent effort that merely offers the same interfaces as Unix (standardized via Posix) but is not derived from Unix code. SCO launched various lawsuits that claimed otherwise, but were very unsuccessful. In contrast, BSD Net/2 was the result of an incremental rewrite of the proprietary Unix code. That also got them sued (and Linux exists partially because of uncertainty about BSD at this time), but it was settled largely in favour of BSD.
    – amon
    Jul 21, 2020 at 16:03
  • @amon: Wikipedia contends that USL primarily lost that case because AT&T screwed up and failed to obtain a valid copyright on 32V (and then Novell bought them out and settled the case quickly). It is no longer possible to make that mistake (copyright is now automatic in the US), so I wouldn't take BSD as a particularly useful precedent in this area.
    – Kevin
    Jul 21, 2020 at 17:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.