So what I'm planning to do is to create a script which one part calls (via Python's subprocess) external open source script licensed under GPL-2. To make it easier for users I'd like to distribute the GPL-2'ed script with with my own so that call could be easily done on the correct version of software. (I want to use the specific version of it). Does this scenario affect the license of my script?

I'm slightly confused as I'm not "using" any code of it, my script just wants to call the open source script in order to perform one step. If this was denied would it change a situation if my script tried to download the open source script during the execution? (So it wouldn't be distributed with mine)


Yes, this can be a confusing point.

The GPL's main concern with this is whether your work could be considered derivative of this script. In the end, whether it is or not comes down to interpretation, so the best we can do without legal precedent is to go straight to the source - GNU themselves - and see what their opinion of their license is.

GNU have a great (but long!) FAQ page that outlines the spirit behind the license.

Here's the answer relevant to your situation:

You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.


However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

I haven't copied the entire answer; you can read it here.

Basically, GNU would consider your script to be derivative of the other script if it is integrated so much that calls are made back and forth and data structures are shared. If however your script only interacts in an API-like fashion with the other script, then you're in the clear (but make sure you don't copy any code from the other script!)

In the end this is a value judgement on your part (unless of course you find a lawyer to decide for you).

When it comes down to it, this is usually pretty clear: you're either using it in API fashion or not. If you're not sure after thinking it through, then in my experience it's usually due to trying to find a justification when deep down you already know :)

So you might be able to clear up the derivative status, but then there's the distribution. Things get a bit more murky if you actually distribute this GPL script with yours. You could require users to download it themselves, which would free you up quite a bit. But if you distribute it (or download it automatically - there's really no difference, you're still distributing it), you need to be careful that you make it really clear the programs are separate.

From the same question I linked to above:

If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs—but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.

You also have to be very sure that you provide the source for the GPL program (or a written offer for it), as required by the GPL as a condition of redistribution.

From what I can tell, your options at this stage would be to:

  • consider your script and the GPL'ed script as separate, and distribute them together clearly separated and explained; or
  • license your program under GPL as well (this is, after all, the intention of the GPL - to force you to also open source your program); or
  • find an alternative, more permissively licensed script; or
  • contact the author of the script and ask them to release it to you under another license (they may want to know why you don't want to GPL your own program)

Aaaand as always, IANAL.

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.