I have written a piece of software using the Microsoft Solver Foundation. Now the work is done I want to release the code under the Terms of the GPLv3, if that is possible.

The problem is, the GPLv3 states in section 1:

The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.

The way I see it, the Solver Foundation does not fall into this definition, making it incompatible with the GPL (which is not a surprise by itself).

Now, I do not want to distribute any form of the MSF (or the included Gurobi license for that part) and I will not provide any binaries for the software, so I am unsure whether thew MSF not being a system library does affect my licensing options at all (first time I have to choose a license myself for anything).

The rest of the libraries I used use Apache2 and (L)GPLv3 licenses plus the zlib license for NUnit (which allows everything for binary distribution), so those should not be a problem (please correct me if I'm wrong).

But the MSF and Gurobi part bothers me a bit. What I had in mind was to provide the Visual Studio solution (which lists the MSF as a dependency) and instead of including the gurobi plugin dlls, there would be a readme on how to include them after acquiring the gurobi solver along with the MSF.

So, is this possible? If it isn't, maybe a different FOSS license could be found?


The usual IANAL applies, if you want legal advice, get a lawyer, yadda yadda. That said:

As long as you only distribute your own code, and no libraries, you can pick any license you want; it's probably wise to pick a GPL-compatible one, in case others want to use your code in GPL projects. You are not bound to licenses of software you don't include in your distribution: it's up to the user to install the libraries and comply with their respective licenses.

If, however, your project contains code from MSF (e.g., the output of any code generators), then the MSF license may put extra restrictions on your code, and may make it incompatible with GPL and similar licenses.

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.