0

After talking to a lot of people, they seem to give the impression that once the data goes into a GPL licensed program, it can only be extracted from that program by GPL licensed software.

I am told that a plugin or addon has to be GPL.

I have even been told that anything with a "shared data structure" counts too. So you can't access the same database either.

Some have even claimed that it goes so far as to include APIs, meaning that your program has to be GPL just to use an API of a GPL program.

So, if those claims are true, how do you get data out of a GPL or AGPL program legally? The data is not GPL, just the software. The data should not be held hostage.

There has to be some legal way to get data out of a GPL program or otherwise interact with a GPL program's data, right?

Scott M. Stolz
  • 209
  • 1
  • 7
  • 3
    Could you please provide sources for these claims? Most of them are blatantly not true, because the things you talk about are not derivative works of the GPL'd work so cannot be covered by it. – Philip Kendall Jun 20 '22 at 15:55
  • @PhilipKendall Mostly from answers here. – Scott M. Stolz Jun 20 '22 at 16:17
  • @PhilipKendall For example, here: https://opensource.stackexchange.com/questions/8080/must-a-plugin-for-a-gplv2-work-also-be-gplv2/ – Scott M. Stolz Jun 20 '22 at 16:20
  • 3
    "Some have even claimed that it goes so far as to include APIs, meaning that your program has to be GPL just to use an API of a GPL program." – I'm sorry, but this is just BS. This exact question was at the heart of a multi-billion dollar, 12-year lawsuit between two of the biggest corporations on the planet, involving some of the most knowledgeable lawyers and specialists in the field, going all the way up to the US Supreme Court, and in the end, even after 12 years, they were not able to answer the question. Now, if the best lawyers in the world cannot figure out the answer after 12 years – Jörg W Mittag Jun 21 '22 at 08:25
  • …, how likely do you think it is that "some people on the Internet" can? – Jörg W Mittag Jun 21 '22 at 08:26
  • 1
  • Also, please (re)read the GPL v3 and carefully look at the part which actually uses the phrase "such as by intimate data communication or control flow between those subprograms and other parts of the work". This case is referring to writing a program which is specifically designed to require something else (say, you write a program that is specifically designed to require a GPL library). In practice, a lot of libraries use LGPL instead, which specifically allows linking to the LGPL code and including that code as part of your program, without your program itself needing to be (L)GPL. – Brandin Jun 21 '22 at 11:32
  • That is the question. What is: "intimate data communication or control flow between those subprograms and other parts of the work." For example, if I use one GPL program to import my emails into a MySQL database, and I write another program to access the same database, do I have to make the new program GPL, or can it stay MIT license? What if I access the same emails, but now do it via REST API? How far does this "intimate data communication or control flow" go? Or is the data forever trapped inside the GPL program? – Scott M. Stolz Jun 22 '22 at 10:04

1 Answers1

5

they seem to give the impression that once the data goes into a GPL licensed program, it can only be extracted from that program by GPL licensed software.

This cannot possibly be correct. The GPL (and any other open source license) fundamentally derives its power from copyright law, so the absolute maximum of its reach is the same as the absolute maximum reach of copyright law: any derivative works. If something is not a derivative of the GPL'd work, then it simply isn't covered by the GPL.

The exact boundary of a derivative work is something which is jurisdiction and case dependent, but a good rule of thumb is "if the work could exist without the original, it is not a derivative work".

I am told that a plugin or addon has to be GPL.

The top voted answer on the question you are using (in a comment) as your source for your claims makes it very clear it is not as simple as this. It all depends on the degree of "entanglement" between the two components, and again comes down to whether the plugin is a derivative of the main program or not.

I have even been told that anything with a "shared data structure" counts too. So you can't access the same database either.

You are misinterpreting "shared data structure" - in this context, it means "actually using the same bytes of memory", not "uses the same schema". Again, your argument simply cannot be true because the data is (in almost every case) not a derivative work of the program that produced it, so the license of the producing program is irrelevant in copyright terms.

Some have even claimed that it goes so far as to include APIs, meaning that your program has to be GPL just to use an API of a GPL program.

You will need to provide a citation for this; put simply, people that claim this do not understand either the GPL or copyright law.

Philip Kendall
  • 19,156
  • 1
  • 57
  • 82
  • The problem is that there has to be a certain level of "entanglement" to extract the data. For example, you have to know the database schema or you have to know how to use the REST API. And the data is structured in a certain way so you have to structure it similarly in your program too. At what point does this "entanglement" lead to having to license your work as a derivative work? – Scott M. Stolz Jun 22 '22 at 10:11
  • 1
    @ScottM.Stolz To quote my answer: "The exact boundary of a derivative work is something which is jurisdiction and case dependent". My opinion as an experienced software engineer without legal training is that there is no way a database schema would ever meet that threshold, and I believe that reflects the overwhelming consensus. If you want any more than that, you will need to talk to a qualified lawyer. – Philip Kendall Jun 22 '22 at 10:20