6

I am using a product whose code is covered by GPL2. All fine except that when a major update is released, it relies on database changes which are effected by a script (sometimes hundreds of lines long) which is not included in the GitHub repository. The authors are only willing to provide this script to those who subscribe to their extended support/partnership package. Are they entitled to apply this restriction?

1
  • 3
    The GPL is designed so that anyone can modify and redistribute the code. It is not designed so that you get free labour from the developer for the rest of time. If the scripts operate like a magic key that unlocks a proprietary database backend, and the software cannot function without the database, then that code might be covered by the GPL. But if the script could in principle be written by you, using public information, then you have no right to it (GPL or no GPL). May 4 at 6:05

2 Answers 2

11

That's fine.

You receive the binary and the code under GPL. So you have the source code for the software you use and are allowed to make whatever modifications you desire. The license does not make any comment on updates whatsoever; in particular there is no reference that you are entitled for easy upgrades from one version to the next.

A script to faciliate upgrade from one version to another, working on a database, is in principle just an external tool to allow you to upgrade your data structure for digestion from one version of your software to another. It's nothing special. It could also just be a migration script from one software to another completely unrelated.

Writing such migration tool only needs knowledge of the public API for the database - so it's usually fine to consider it not a derivative of the code.

Yet, even if that were not true, one would have to look at the copyright ownership: If the company or person releasing the programme is the sole copyright holder, they are not bound by the license themselves and can choose to release any part under whatever license they choose (or not at all). If they are not - the previous paragraphs apply.

7
  • I don't think we know whether the code is released under GPLv2 because the sole rightsholder wishes it to be, or because (s)he used one or more GPLv2 components in its construction, and is thus obliged so to release it. I agree with your last paragraph in the former case, but note that we have no reason to think it so.
    – MadHatter
    May 3 at 11:38
  • Agreed, we do not know that. I rephrased the last paragraph slightly in an attempt to make this distinction clearer. Do you have a suggestion how to rephrase the last paragraph to make that clear(er)? May 3 at 14:23
  • "you have the source code for the software you use" - would that include the database schema? Or is the database not considered to be part of the software? I get your point regarding easement of upgrades (migrations), but would GPL require documentation or a script for a fresh installation?
    – Bergi
    May 3 at 23:28
  • 1
    The software doesn't need to do anything, not even work properly or at all. It also needs no documentation. The license only requires that you can get the full corresponding source code for the binary. It is 100% free and you can do with it whatever you like. However, if you want guaranteed support, pay someone for it. Whether treating users like this is a good idea, is an entirely different question May 4 at 2:37
  • @planetmaker I think I'd have ducked any discussion of the issue until we had some reason to suspect that particular truth might be relevant. But it's your answer and you should write it the way you want to!
    – MadHatter
    May 4 at 12:13
7

The approach you describe in your question very much looks like the 'freemium' business case. You get something for free, but if you want to use all features (in your case: migration of data from one version to the next) you need to pay a fee.

This business model is usually OK, and if it is the case (an assumption, you seem to indicate this) that the authors of the free database and of the script are the same individuals (copyright holders), then there is not even the question about code overlaps.

So yes, the authors are OK to do this, I cannot see any GPL violation.

4
  • 1
    Thankyou all for helpful answers. I can see the place for "add-on" scripts, although in this case, I think it is sneaky: it seems easier to include migration scripts within the open-source repository than to deliberately exclude them, and with the product in question, we are not talking about implementing optional extras, but rather essential bugfixes. Legal or not, it effectively means that if we want to develop and customize this software long-term (which could be for the benefit of the original authors), we are tied to their "support package".
    – tglare
    May 3 at 16:03
  • 3
    Arguably, yes, it's sneaky. But not illegal, and it's some (reasonable) means to get money from those people who use this software regularily and long-term May 3 at 16:55
  • 2
    @tglare Note there's nothing stopping you from writing the migration scripts yourself and then either publishing them for the benefit of all the other users (undercutting the business model that you seem to disagree with) or selling them.
    – TooTea
    May 4 at 13:20
  • I don't want to protract this debate, as the essential question has already been answered satisfactorily. Yes, I could try writing a migration script, but , as I said, the last one was thousands of lines long, and I just do not have the time. Add to this the fact that product documentation is inadequate, requiring use of paid support service to get vital information, and if it was left to me (it is not), I would weigh up the pros and cons and say "thanks but no thanks". As a contrast, SuiteCrm, for one, has an excellent attitude, and encourages productive cooperation.
    – tglare
    May 5 at 7:47

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.