I found a project on GitHub that I really liked, and have since forked and modified it. It's currently licensed under Apache 2.0. Can I release my modified project as a project with a new name under GPLv2? If yes, how would I credit the original contributors (aside from preserving git history)?
1 Answer
Unlike the BSD, MIT, and ISC licenses, the Apache 2.0 license is not compatible with the GPLv2.
From the Apache Software Foundation:
Despite our best efforts, the FSF has never considered the Apache License to be compatible with GPL version 2, citing the patent termination and indemnification provisions as restrictions not present in the older GPL license. The Apache Software Foundation believes that you should always try to obey the constraints expressed by the copyright holder when redistributing their work.
From the Free Software Foundation:
Please note that this license is not compatible with GPL version 2, because it has some requirements that are not in that GPL version. These include certain patent termination and indemnification provisions. The patent termination provision is a good thing, which is why we recommend the Apache 2.0 license for substantial programs over other lax permissive licenses.
If you want to prevent others from keeping modifications to your code to themselves, you can relicense under the MPLv2, the EPLv2, or the more restrictive GPLv3 instead. This will also prevent the original project from using your improvements though (unless they drop the Apache license too), so that may not be very nice towards them.
-
3Excellent answer. Multiple references cited, alternatives provided, and etiquette mentioned. Jul 10, 2022 at 8:43
-
1"We avoid GPLv3 software because merely linking to it is considered by the GPLv3 authors to create a derivative work." It's unfortunate that the GPLv3 authors take such an obviously unreasonable position. A "derivative work" is, by definition, a new work of authorship that contains significant protectable expression taken from prior works. A new work of authorship necessarily contains new protectable expression. If linking created a new work of authorship, who would have authored that new expression? Who would hold copyright to it? It's a nonsensical position. Jul 11, 2022 at 0:11
-
1@user253751 What significant protectable expression did they author that wasn't already in the work before the linker was invoked? Remember, the argument is that the linking process creates a derivative work. That means the linking process must create new protectable expression that didn't exist in any prior work. Say I write a program and you link to GNU malloc instead of some other malloc, you're saying that I authored new protectable expression when you linked my program? Jul 12, 2022 at 5:23
-
1@user253751 That would be even more ridiculous. That would mean that by writing any program that could use a
malloc
library, I would be creating a derivative work of every implementation ofmalloc
that someone might later link it to. Jul 12, 2022 at 9:35 -
1@user253751 It doesn't matter. The argument is the same regardless of what library you're talking about. Heck, the library could be written after the program is. In any event, making an exception to a nonsensical rule doesn't make it any less nonsensical since the argument isn't about the GPL at all -- it's an argument about what is or isn't a derivative work. Jul 12, 2022 at 9:40