1

I have a specific case here for which I could not find a clear answer here or on other pages. I am working for a company that is interested in using an open source code licensed under GPLv2. The software has machine learning and database components. The machine learning models are used, often in combination with the database, to solve specific tasks. My employer would like to use it internally for its own research. However, we would like to update it so that it works better for us. The modification would aim at improving the models and the database content, so that they are more accurate for the company. This will of course also force us to change the original source code so as to make use of the models. The modified version would be made available on an internal service platform that scientists will use only for internal research. There is no intention of selling/redistributing the software commercially.

Does the company have to release the updates, since technically, the models and the database will be plugged into the source code? If we were to (a) refactor the code to make it flexible so that it would allow any user for dynamically plugging their own sets of machine learning models they train and a modified version of the database, and (b) release the refactored source code under GPLv2: Would we have to release the ML models or any addition to the database content. Your help would be appreciated.

  • GPL v2.1 does not exist. Do you mean LGPL v2.1? – Vortico Apr 15 at 21:16
  • Yes! I meant GPL, version 2. Thank you for the correction. – Yann Apr 16 at 1:08
2

The GPL FAQ is pretty clear about releasing modified versions:

The GPL does not require you to release your modified version, or any part of it. You are free to make modifications and use them privately, without ever releasing them. This applies to organizations (including companies), too; an organization can make a modified version and use it internally without ever releasing it outside the organization.

However, if you do distribute the software to people outside your organisation, then you must do so under the terms of the GPL license and you have to release the sources of your modified version also (at least to everyone that can obtain a copy of the binaries).

The data read by a program, including the contents of a database, and the software of the program itself are completely independent things as far as copyright is concerned. They are licensed independently and their licenses don't affect each other. This also means you can decide to distribute one but not the other.

| improve this answer | |
  • Thank you for your explanation. Basically, distributing involves repackaging (with or without updates) and sharing it with users outside the company then. As long as it is used internally, by one or more scientists, it is not considered a distribution. Correct? – Yann Apr 16 at 13:39
  • @Yann, yes that is correct. Things might be a little more complicated if the scientists work for a different legal entity under the same parent company, but even that case you only have to give the GPL rights to those scientists. – Bart van Ingen Schenau Apr 16 at 14:07
  • Just want to add to this pretty good answer that the GPL is not as obscure as one might think. As long as you give to the users of your modified versions access to the source code you're fine. And well, if you're using modified versions in-house, your organization already has access to that source code. That's what they mean by "software freedom". The one of the users. There is nothing about giving away the source code to the general public. Also the second part of the answer is very important. Using a GPL software does not dictate anything about your data. No software license can do that. – N. Gimenez Apr 18 at 2:33
  • Well technically if you give a user your modified source code, they have the right to publish it online for the general public. That's all. – N. Gimenez Apr 18 at 2:48
  • Thank you all so very much for your answers. They were really helpful. – Yann May 22 at 16:13

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.