I have some code that I would like to integrate with a GPL licensed piece of code, my code is licensed BSD. If absolutely necessary I could license everything GPL, but if possible I would prefer to only keep the currently GPL license code GPL, and have all other code BSD.

What are my options for including the GPL code in my code base without relicensing everything GPL? I know the GPL says that if it is included with non GPL code than all of the code is license GPL. Does that mean what I'm trying to do is not possible?

The GPL code in question is just a single sh script, in a single file. I'm not even executing it from my code, I'm just installing it alongside my code, since it's a requirement for my code to run correctly.

My code executes another program, which will then use the modified script.

I can't use the original code in question since I needed to modify it.

Preferably I would have a notice file that says everything except a single-file which I have forked from a GPL code base is BSD, but I don't know if this is possible.

  • It depends on how the GPL code is used. Is it one file of many, all of which are linked together to form a final executable? Or something else, and if so, what?
    – MadHatter
    Jun 7, 2018 at 8:58
  • It's just a single sh file. Jun 9, 2018 at 5:53
  • 1
    Can you clarify how the shell script is used in your project? You say you are not executing it, yet it's necessary for your project to run correctly?? Is it an installer or launcher?
    – amon
    Jun 9, 2018 at 7:21

1 Answer 1


The GPL program you wish to use is a single .sh file, and your program won't even execute it. It seems to me (IANAL/IANYL) that you would be OK even if it did, since although the GPL requires that derivatives of GPLed code be themselves GPLed, the FSF themselves note that:

A main program that uses simple fork and exec to invoke plug-ins and does not establish intimate communication between them results in the plug-ins being a separate program.

So use of code via fork-and-exec, passing any data as simple arguments rather than as shared data structures, doesn't establish a derivative relationship in either direction between the code that invokes, and the code that is invoked. Your packaging of the GPL shell script is mere aggregation. You will still have obligations with respect to (inter alia) clear labelling and source distribution in regard of that particular GPLed shell script, but you will not be required to apply the GPL to your program.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.