I have a program that I intended to release as MIT[0].

But I noticed that one of dependencies is GPLed. Fortunately I only use it via a system call to make final production step of graphics.

my code is like this:

os.system("svgis draw <FUTHER PARAMETERS>")

where I call svgis program using a system call.

Exact code is at https://github.com/matkoniecz/tactile_patterns/blob/master/patterns/generate.py#L34

[0]as in this case code is mostly trivial anyway. And I am not sure whether interesting parts where work went are actually copyrightable.

  • I notice you answered your own question less than one minute after posting it, which makes it look rather as if you wrote the question with the answer already in mind. That's not a bad thing per se, but may I ask if it was the case here?
    – MadHatter
    Commented Mar 27, 2021 at 8:41
  • @MadHatter I found answer while writing question. And it seems to not be duplicate of what is posted already, on topic and as I understand self-answers are OK. And if answer is wrong I would be happy to learn about it. Commented Mar 27, 2021 at 8:45
  • That's fair, and your answer's not wrong, but it duplicates quite a number of existing answers, such as this one. Search for fork and exec and you'll see what I mean. In this case I accept that writing the question helped you formulate the answer - the same thing's happened to me on occasion! - but if you are writing with a view to self-answering, it does need not to be a duplicate.
    – MadHatter
    Commented Mar 27, 2021 at 8:46
  • @MadHatter "Search for fork and exec and you'll see what I mean." - sorry! Sadly, I was not aware that it is term that I should look for (probably because Python hides actual fork + exec and I was unaware that it is the same situation). Feel free to downvote or mark it as duplicate/delete or moderate away. But I think that it is useful at least to catch this form of phrasing. But I can also delete that question. Commented Mar 27, 2021 at 8:53
  • I totally understand about the searching! It's your call whether or not to delete it. I suspect you intend to accept your answer (I would, it perfectly matches the question), but I also know the system won't let you accept your own answer yet, and I'd rather others didn't come along and write yet more answers that duplicate those elsewhere. So if you don't mind, I will close the question as a duplicate.
    – MadHatter
    Commented Mar 27, 2021 at 8:58

1 Answer 1


I found https://softwareengineering.stackexchange.com/questions/110380/call-gpl-software-from-non-gpl-software that directs to https://www.gnu.org/licenses/gpl-faq.html#MereAggregation

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

As I understand it, in general I can call a GPLed program with any software, without violating GPL license.

Though in some cases where one program would be effectively created ("if the semantics of the communication are intimate enough...") then it would not count as starting a separate program.

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