1

Situation: A commercial product, using a locally modified GPLV3 licensed library. GPLV3 clearly requires to disclose source code.

Question: Which source code are we talking about about ?

(a) The complete commercial product - including the modified library.

(b) The modified library only. The commercial product can remain closed source.

Is it (a) or (b) ?


Personally I think the answer is (b). The modified library has to be released as another GPLV3 licensed product. A fork of the original product as it were.

However, management in my company is banning GPLV3 altogether because there is a risk the complete product should be released as open source.

1 Answer 1

4

If you are actually planning on doing something like this, instead of just thinking about doing it, you should always ask your company's lawyers and do as they tell you.


The Free Software Foundation takes the view that separate processes are different programs and code running in the same process is one program:

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.

If the FSF's view is correct, then the whole program, commercial code included, is one big derivative work of the original library. That means you have to license the whole thing under the GPL. Whenever you distribute binaries of a GPL'd program, you must also distribute source that can be compiled into those binaries. In other words, you must distribute all of the source, not just the modified library.

2
  • It only proves one has to be much more cautious about this when the starting a software product. Commented Mar 2, 2017 at 8:45
  • 2
    @JanGoyvaerts in practice things are much more problematic with reuse commercial software than open source. But yes, in both cases, understanding licensing and its implication matter. Commented Mar 2, 2017 at 9:31

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.