1

We are looking at an open source software's "General Public License" that says "if you distribute or publish a work containing modified software you must license at no charge to all third parties the whole of the work". For performance reasons, we would need to move functions in this software from a C file to a header file and make them static inline, and also remove (or handle differently) a few global variables, otherwise it can't run multithreaded.

Does this language (and/or GPL in general), apply to that level of modification ? Is there a minimum allowed level of modification defined anywhere, for example adding comments ?

Additional notes - this license says it's a General Public License but does not use the term "GPL". My objective is to learn whether, in general, GPL licenses allow any level of modification, even superficial such as comments, without requiring incorporating code to be freely published

  • 3
    I don't quite follow what your exact concern here is, so I can't tell you (yet) wether it's founded or unfounded. Do you have another piece of your own proprietary software, and you plan to use this GPL software as a library? Or the other way around? If you could precisely say which pieces of software are involved, under whose authorship, that might help me give a better answer. – apsillers Mar 10 '23 at 04:41
  • @apsillers the former, we are contemplating to include the modified header and C files (one each) into a binary Linux lib (shared object) and distribute commercially. Our legal persons won't let me give specifics yet (who, web pages, etc), but I can say they wrote their own "General Public License" in the year 2000, and I quoted from it fairly directly. They do not refer to any other GPL as a base or original / derivation of. They don't even use the word "GPL" – Jeff Brower Mar 10 '23 at 16:38
  • 1
    @JeffBrower then I move to close this question because you cannot even tell us what license you are talking about. Whatever it is, it isn't the GPL. – user253751 Mar 10 '23 at 18:40
  • @user253751. The question, as framed in the title and clearly described by "does this language (and/or GPL in general)", is whether GPLs define allowable minimum modifications -- something superficial like comments, something more like static inline. So far I can not find any that do, although ruben2020 indicates that LGPLv2.1 does – Jeff Brower Mar 10 '23 at 20:18
  • There is only one GPL, the GPL, and it does not care how much you modify it because you have to do the same things even if you do not modify it at all. There are also two other popular licenses from the same writers that are variations of the GPL, which are called the LGPL and the AGPL. However they also do not care in the way you are talking about. Whatever you are talking about, it's not the GPL. – user253751 Mar 10 '23 at 20:19
  • 1
    @user253751 "There is only one GPL, the GPL" ah no, that's not correct – Jeff Brower Mar 10 '23 at 20:24
  • @JeffBrower well, any license can be called "a general public license" since those are just words used to name the license, with no particular required meaning. A license called "general public license" is no different than a license called "foobar quazzlefrorp license". In the context of open source licenses, the letters GPL refer to the GNU GPL. If you are not talking about this license you should just say "a license" instead of "a GPL" – user253751 Mar 10 '23 at 20:25
  • @user253751, yes I agree. And I have asked the reputable SDO of this particular "General Public License" (as they write it with no abbreviation), to clarify whether they mean the (mostly) GPL or something else – Jeff Brower Mar 10 '23 at 20:26
  • but you didn't even tell us what license it is except that it's not the GNU GPL – user253751 Mar 10 '23 at 20:26
  • @user253751 well, there are 3 GPLs - v1, v2 and v3. – Philip Kendall Mar 10 '23 at 20:41
  • 1
    @JeffBrower If the license is not the GPL then why do you think it is so important to tell us that it's called "General Public License" when that is actually a completely irrelevant distraction? – user253751 Mar 10 '23 at 20:45
  • @user253751 as I mentioned in a comment, the SDO wrote this in year 2000; I'm guessing at the time they did mean the GNU GPL, so I don't think it's irrelevant. Hopefully they will clarify; I have asked them – Jeff Brower Mar 10 '23 at 21:37
  • 1
    I think the GNU GPL does not use the term "GPL" either, just "General Public License". Still, whenever anyone says GPL in an open source forum, it means the GNU General Public License. It is so obvious. It is like someone would say "RAM" and you would know it's the computer chip, Random Access Memory not the Daft Punk album, Random Access Memories. You wouldn't go to a computer forum and be like "Hi! I want to play RAM but it's too loud for my speakers" – user253751 Mar 10 '23 at 21:40
  • and maybe you could say like "I want to play Daft Punk RAM" and maybe that would be okay but it's probably better to stick with calling it something that doesn't sound like a computer part, you know? like "I want to play the album" or "I want to play some music" or "I want to play Daft Punk" – user253751 Mar 10 '23 at 21:41
  • @user253751 "I think the GNU GPL does not use the term "GPL" -- it does use the term GPL – Jeff Brower Mar 11 '23 at 01:05
  • You definitely may want to link the piece of software you plan to modify. If it's under the GPL, then it's open source and there cannot be harm in stating exactly what you want to do. And it would also clear up the shrouded mystery about "the GPL" (which does not exist). – planetmaker Mar 13 '23 at 14:24
  • Either case, you DO have obligations to disclose source code, regardless which GPL version. The question is to what degree, thus whether only the modified library or your whole project. – planetmaker Mar 13 '23 at 14:26
  • If your legal team wrote their own license (called GPL or anything else) we cannot give any opinions unless you provide the entire license. Since is is not the GNU license we cannot take GNU's terms and apply it to your license. And if you're using software that was released under GNU GPL, you cannot relicense it under your company's license without explicit permission from the original right holders. – doneal24 Mar 13 '23 at 17:01
  • "you must license at no charge" This makes it sound like this license isn't even open source! – curiousdannii Mar 15 '23 at 05:55

2 Answers2

5

The GPL License has clear definitions of what constitutes a 'modification'.

GPLv3 says:

To “modify” a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a “modified version” of the earlier work or a work “based on” the earlier work.

Therefore, all of the items you listed in your question constitute a 'modification', and you have to comply with the terms of the GPL license unless you are the original author of that modified code.

Martin_in_AUT
  • 7,205
  • 10
  • 37
  • Martin_in_AUT, thanks for your answer. Yes this is what I thought too -- don't even comment it. But in cases where the code won't run on a specific CPU or platform without mods, it seems to me it would make sense for the license holder to grant an exception, incorporate our mods into their code base, etc. I am contacting them about possible options – Jeff Brower Mar 10 '23 at 16:43
  • Why would they grant you an exception to the license designed to explicitly deny what you try? Maybe you can buy an exception. Consider the worth of the library to your project, the time and manpower you would need to create it from scratch and the delay in releasing your product and lost revenue, and make an offer from that basis – planetmaker Mar 13 '23 at 23:44
1

You described moving code, especially functions, from C files to header files, and also modifying header files.

For GPLv2 and GPLv3, this is clear. Whatever change you make to any of the source code or header files or build scripts, must be made available, as a whole, to recipients to whom the software was distributed in binary form. Also, if the GPL'ed software is used as a library by, or linked to, other software, then the GPL license would apply to that software too.

However, if you're using an LGPL'ed licensed software, then it's a different story, especially with LGPLv2.1, as the change you proposed will affect other software using the LGPL'ed software (written in C) as a library, especially with respect to the number of lines of the inline functions and macros.

Section 5 of the LGPLv2.1 states:

If such an object file uses only numerical parameters, data structure layouts and accessors, and small macros and small inline functions (ten lines or less in length), then the use of the object file is unrestricted, regardless of whether it is legally a derivative work. (Executables containing this object code plus portions of the Library will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may distribute the object code for the work under the terms of Section 6. Any executables containing that work also fall under Section 6, whether or not they are linked directly with the Library itself.

ruben2020
  • 2,318
  • 3
  • 19
  • @ruben2000 ok that's interesting, so with LGPLv2.1 (2005) at least some definition of minimum allowable modifications was introduced – Jeff Brower Mar 10 '23 at 17:36