Kai-Uwe Behrmann wrote:
beside being angry, there is not much you can do against someone using your software without modification and for professional use.
Oh yes there is, I can (and will!) sue them for copyright infringement, if they don't comply with the (GPL) licence I have offered, and if they have not been granted any other licence to distribute my software.
The GPL cares about modification, distribution and licensing of derived work, nothing else.
A application using a commandline tool (argyll) is hardly a derived work.
I disagree. Any software package that depends for its operation on features in GPL code, is a derived work. Mere aggregation of Argyll into a package is not. The proof is easy. If (say) Argyll is removed from the distributed proofing package, and as a result the distributed software package ceases to work (or features of it cease to work), it is (at least in those aspects) a derived work (ie., functionality of the distributed software work derives some of its capabilities from the distribution of Argyll code with it).
See section 0 of the GNU licence:
The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". "
So a "work" such as a proofing solution package, that contains a copy of any of the code from Argyll in that work (in whatever form, human readable or machine readable language), verbatim or modified, is defined as being "The program", and the GNU license applies to the whole thing, or not at all. If there is no dependence between programs in a distributed package, then this may be "mere aggregation", and may in that case, not be regarded as a derived work.
Moreover in sections 2 on distributing modified works:
These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
So the "work as a whole" is the distributed application package. If the proofing software programs have not made use of any Argyll software directly, linked, or borrowed any software from it, and could therefore be reasonably considered independent and separate works in themselves, then the GNU License and its terms do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of the GNU License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
In my view, this is all pretty clear. The mere fact that a separate program depends on a GNU program for some of its functionality does not in itself make it a derived work, but when packaged into a "work as a whole", it does make the whole a derived work.
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.
Right, but this is making the distinction between distributing things that depend one upon another (and may communicate in this fashion), and merely running them together. The latter is permissible, and because of the arms length nature of the link between the two separate programs, does not imply that the two programs themselves are really one program, with the implications that would have for them being a derived work.
If one program depends on the other for some features however, and they are packaging and distributing together, then the distributed package forms a derived work.
For example, the software that Rolf Gierling has written, that he mentioned a week or so ago, is perfectly OK as it is, even though it is not made available under a compatible licence. If on the other hand, someone decided to package that code and Argyll together and distribute them, then unless Rolf's code was also made available under a GNU compatible licence, the distribution would not be permitted by the GNU licence.
But this interpretation is vague. For instance if a web browser (Microsoft IE) would allow to make a data base query through a web interface (intimate communication) IE will be hardly a derived work of the data base.
No, but they are independent, and not packaged and distributed together as a single work.