I have a project that I started a long time ago and licensed under GPLv3.
It uses an implementation of a particular algorithm, where the implementation is licensed under GPLv2.
GPLv2 is not compatible with GPLv3, so I wish to get rid of the GPLv2 somehow so I can release the whole project under GPLv3 as I originally intended to.
Does the GPLv2 actually apply for this usage? And, if so, is there some way I can get rid of it?
There's another copyright header later down in the code, I didn't think to include it before since it points nowhere and doesn't specify a license but perhaps the original original FFT implementation/specification can be dug up.
fft.c Douglas L. Jones University of Illinois at Urbana-Champaign January 19, 1992 http://cnx.rice.edu/content/m12016/latest/
(the link doesn't work)
This would suggest that this Java version is adapted from an earlier C implementation, which might have used a different license.
I'm no expert, but I see two conflicting ways to view this:
- Algorithms are not owned by anyone, therefore I should not be restricted even if the implementation I am using is based on a GPLv2 licensed one.
- The GPLv2 infects any derivative works, and since I have nothing else to base an implementation on, any implementation of the algorithm I make is automatically a derivative work of the original, and under GPLv2.
If more details might be needed, here's the relevant bits of the timeline:
- My project goes on GitHub, released under GPLv3.
- The entire Radix-2 DIT FFT implementation is brought into the project.
- I add some API on top of the FFT.
- I add some tests and benchmarks for the FFT.
- Rewrites happen across several git commits. Unneeded sections are removed. Input checks are added. The algorithm is further optimized. All parts are documented. License header is kept.
I originally asked this somewhere else, before knowing about this stackexchange. So I ask here now.