I am working on a distributed computing project. The client for this project uses Twisted (MIT licensed) to communicate with the server. The client will locally invoke a PARI/GP (GPL licensed) script to do all of the computations based on two numbers passed from the client. The PARI/GP script will then return a few numbers to the client, which it will process into information for the server before sending it off. What I want is to have the client itself be closed-source, since this processing it does for the server is to discriminate against fake results. I don't care either way whether the PARI/GP script source is distributed.

I have read this GPL question and it seems that my client and the PARI/GP script would be considered separate programs in an aggregate, since they communicate very basic data and do so rather remotely. This would allow for the client to be closed-source. Are they really separate? Would it change if I offered proprietary alternatives to the PARI/GP script fulfilling the same purpose?

Is it possible that PARI/GP itself could be considered a "System Library" as defined in section 1 of GPLv3.0? If so, would I be allowed to provide a download link to PARI/GP itself, or could I just include PARI/GP in the whole application?

Clarification: The PARI/GP script does all of the actual computation necessary for the results of the distributed computing project. The processing the client does is just to ensure that those computations were actually done, and then show this to the server. That is what makes me believe they are two separate programs.

  • How does your client application communicate with the PARI/GP script? Is it direct function calls, like with a library? Is the script invoked as an external program (and could it be replaced by another program that has the same interface)? Mar 30, 2020 at 16:59
  • The client app executes the PARI/GP similar to an external program and passes some numbers to it. Yes, it could theoretically be replaced by another program with the same or a similar interface. That's why part of my question was whether it made a difference if I offered alternatives to the PARI/GP script. Mar 30, 2020 at 18:25

1 Answer 1


If the requirements of the client application are just that there needs to be an external program that can be invoked with a two numbers as input and that produces a few numbers as output, then those requirements are generic enough that the client application and the PARI/GP script will be considered to be separate works for copyright purposes. This means that the GPL license of the PARI/GP script has no influence on the licensing options of the client application.

This means that even if you distribute the client application and the PARI/GP script together, your client application can be closed-source as long as the PARI/GP script can be modified and the client application can use the modified script.

Is it possible that PARI/GP itself could be considered a "System Library" as defined in section 1 of GPLv3.0?

No. System Libraries are libraries that are reasonably expected to already be present on the end-user's system because they are part of the OS or so extremely widely used that an average user doesn't need to receive it as part of your software.

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.