I have a piece of software that I have been working on for a while now. You can find it here. Since it is now at a stage where it could potentially be useful to other researchers, I decided to cover it by the GPL.

While most of it is code that I wrote myself, one set of functions, contained in butterworth.c and butterworth.h, are not - they are a library of functions I found on this website, and are covered by the GPLv2. The rest I have (tried to) cover with the GPLv3.

I suspect that having two versions of the GPL in the same project is not OK, so what is the proper way to cover the contents of butterworth.c in my project while still giving credit where it is due to the original programmers who wrote it?

I suppose, in addition, is there anything wrong/missing with the way I have set up the GPLv3 in the rest of the project? Currently it is just a comment block at the start of all .c files.

  • 2
    I don't have time to write a proper answer now, but to quickly give you a starting point: according to the FSF FAQ's compatibility matrix, as you might expect, this is only okay if the GPLv2 software was licensed as "version 2 or higher", so you should go check if it uses that phrase. – Ixrec Aug 1 '15 at 22:32
  • 1
    Yes, they do: from their pramble in butterworth.c: "liir - Recursive digital filter functions Copyright (C) 2007 Exstrom Laboratories LLC This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version." I'm fairly sure there's nothing wrong in principle with what I am doing, I am mostly interested if I have the specific form of the licensing done correctly. – KBriggs Aug 1 '15 at 22:38

Per the comment you left, the code you are using but do not own is licensed under GPLv2 or any later version. That clause may be omitted; the Linux kernel is a famous example of a project that is only licensed as GPLv2. However, it appears that clause is intact in this instance.

Based on the information in the question, it appears that you can license the whole project (including the files in question) under the GPLv3.

Please keep in mind that these are licensing terms. Copyright is still owned by the original author unless reassigned. The fact that you are relicensing the code does not change who actually owns the "butterworth" code.

To remove any potential ambiguity about legal rights, each file should have both a copyright and license notice near the top. You can have a standard GPLv3 notice (the FSF has boilerplate text for this on their web site) but leave the butterworth copyright notice intact.

  • So I add my own little "Copyright (C) 2015 Me" preamble in all my .c files, and just leave the one in butterworth.c as I found it? – KBriggs Aug 1 '15 at 23:25
  • OK, just to I am absolutely clear: I can replace the GPLv2+ boilerplate text in butterworth.c with GPLv3 text, but I leave the copyright intact? – KBriggs Aug 2 '15 at 0:06
  • Yes, as long as the GPLv2 as included in the other code includes the "or later version" clause. – user22815 Aug 2 '15 at 2:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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