QPL in a Matlab/Simulink environment
Marc Rauw
rauw at xs4all.nl
Tue Dec 25 13:18:01 UTC 2001
Hello,
First of all: my apologies for the length of this post! I hope I'm not going
to ask the obvious.
My question concerns Open Source licensing in a Matlab/Simulink environment.
I plan to distribute Matlab/Simulink software under an Open Source copyleft
license, preferrably the QPL, but I have some questions concerning linking
of software elements.
First, let me explain a little bit about this software environment itself:
Matlab is an interpreted language (although Matlab compilers do exist),
which allows the building of large software libraries, called 'toolboxes'.
The user can call Matlab functions in these toolboxes from within his/her
own Matlab scripts and/or functions, which (to me) seems to be a form of
dynamic linking, as long as the resulting programs are not compiled.
Furthermore, Matlab uses a common 'workspace' for variables (there are in
fact multiple workspaces, but they are all part of the Matlab environment
itself).
Simulink allows the creation of dynamic systems, represented as
blockdiagrams. Individual Simulink blocks can be gathered together in a
block-library, called 'blockset', and the user may place calls to these
blocks from within his/her own Simulink systems and/or blocksets. Here too,
I would think we have a form of dynamic linking, as long as such a Simulink
system is not somehow converted to a stand-alone executable.
My software consists of a combination of Matlab toolboxes, Simulink
blocksets, and a couple of Matlab programs and Simulink systems that rely on
these toolboxes and blocksets. One way to avoid licensing problems with
these toolboxes and blocksets would be to release them under the LGPL (the
programs themselves could then be released under the GPL), but I feel the
QPL would give me a little more control over the future development of this
software. However, since the QPL does not differentiate between dynamic and
static linking either, the use of the QPL for the toolboxes and blocksets
apparantly implies that any program or system using these tools would have
to be released under the QPL as well.
To solve this problem for this particular case, I was thinking about adding
an appendix to the QPL, which would not be part of the QPL license itself,
but would be an integrated part of the license for my particular software
suite. The question is whether or not that violates the QPL. Here's my
proposal (the new clauses were numbered 7, and 8 to indicate that they
enhance the QPL for this particular purpose):
<<< start >>>
7. The user is granted the right to link to blocks from the Simulink
libraries in the Software, regardless of the licensing terms for the
Simulink system in which these links are established, provided that:
a. the source-code of the corresponding Simulink library is made available
in accordance with the terms from section 6 of the QPL
b. the licensing terms of the Simulink library itself are not changed
(i.e., this Simulink library is distributed under the QPL)
c. if the library link is broken by means of the 'break library link'
option in Simulink, a verbatim copy of the source-code of the corresponding
library block will be placed in the Simulink system in which this link was
originally established; in that case, sections 3 and 4 of the QPL apply,
which means that the resulting system is considered to be a derivative work
that may be distributed under the terms of the QPL only.
8. It is allowed to call Matlab functions, contained in the Software, from
within other Matlab programs or Simulink systems, regardless of their
licensing terms, provided that:
a. the source-code of the corresponding Matlab function is made available
in accordance with the terms from section 6 of the QPL
b. the licensing terms of the Matlab function itself are not changed (i.e.,
this Matlab function is distributed under the QPL)
c. if the source-code from this Matlab function is copied into another
source-file, e.g. as 'subfunction', sections 3 and 4 of the QPL apply, which
means that the resulting file is considered to be a derivative work that may
be distributed under the terms of the QPL only.
<<< end >>>
In these clauses, the software suite is denoted as 'The Software', similar
to the terminology in the QPL. Obviously, if I include such additional
clauses in my licensing terms, I will make it crystal-clear that they are
*not* part of the QPL itself.
The creation of stand-alone executables, or any other form of linking, will
be covered by the QPL. Also, I am aware that these clauses do not solve the
QPL/GPL incompatibility problem, due to the restrictive nature of the GPL;
this is a problem I am willing to accept (if it really turns out to become a
problem in practice, I might reconsider my position regarding the (L)GPL).
Is such an enhancement of the QPL allowed, or is this application of the QPL
illegal? Do I need permission from Trolltech to add such an appendix? Do
these clauses violate the QPL itself? And finally, does the wording of the
proposed clauses make sense (considering that I'm neither a lawyer, nor a
native English speaker)?
I really appreciate your thoughts about this!
Regards (and best wishes to you all),
Marc Rauw.
--
license-discuss archive is at http://crynwr.com/cgi-bin/ezmlm-cgi?3
More information about the License-discuss
mailing list