G'day all,

[Sorry for breaking the thread -- digest strikes again...]

Like RMS, I strongly dislike "Open Source" as an umbrella term, and strongly
prefer "Free (as in Freedom)" or "Libre" (e.g. LibreOffice):  The underlying
concepts are massively, massively different.

Before I go any further, Lua's use of the MIT license has been a key reason
why it has thrived in some key areas, such as game scripting.  If it was
GPL (probably v2; perhaps, more recently, v3), then some key early-adopter
companies would (very likely) not have adopted it.  This has been a feedback
loop -- Lua has been enriched by its wider audience.

The GPL combination of Copyright + License is a brilliant piece of legal
engineering, since Copyright as a starting point is so uniform and clear
because of the Berne convention.  The GPL is all about encouraging, but
also being able to force, if necessary, a source-code-sharing culture.

With GPL, if you "combine" some GPL code with your code, the entire linked
(statically or dynamically) result MUST be licensed with the same GPL
license that was in the library.  This is non-negotiable.  In particular,
you MUST grant exactly all the privileges and restrictions of the original
GPL component, including explicitly licensing your entire program for all
downstream users, as follows:

        You explicitly grant all the privileges and restrictions of the
        GPL code that you used, and to all other code linked in the same
        package, to all clients/users of your code.  This license grant
        is non-revocable, once given.  Furthermore, you must apply the
        same GPL license to all "down-stream" clients of your source
        code.

The "strength" of the linkage between some GPL-controlled source code,
and the end-user, can vary widely, and so there is some interpretation
that needs to be looked at here.  For example. "GNU Grep" is GPLv3
licensed, yet users can run the binary without incurring any license
restraints on their work (perhaps Grep being invoked in a Bash script).
Any end-user of the GNU Grep utility, however, has the right to receive the
source code for that binary utility, under the provisions of the GPL.

The Free Software Foundation also recognised that there were cases
where the full "Copyleft" demands of the GPL were too onerous, or perhaps
there was no benefit since an outside entity (library) already covered nearly
all of the territory.  Thus, the "LGPL" "Lesser" GPL license was created and
is used in some situations, such as the support code for the GNU Compiler
Collection (GCC) itself.  The LGPL demands that modifications made to the
LGPLed-library itself must be made available, with the same LGPL license
attached to the changes, but does not demand that other parts of the program
must adopt the LGPL.

If an application (library) calls on libraries with multiple licenses, it is
the responsibility for the the application's owner/publisher to ensure that
there are no conflicts between any of the components (using a matrix?).

--

Okay, enough on general licenses; some brief comments on Tecgraf stuff:

CD explicitly "depends on" IM, and IUP explicitly "depends on" CD and IM.
Therefore, all worries regarding licenses in CD potentially flow up into
IUP.

Therefore, I repeat an earlier plea:  Please, please separate the top-level
projects (e.g. CD), which are currently packaged into a single
dynamically-linked library (e.g. .dll or .so, etc) into separate modules,
at least initially based on licence considerations (e.g. tuio -- GPL).

This separation would mean that there would be much more clarity, than at
present, regarding what license conditions an end-user would be exposing
themselves to -- they can explicitly avoid GPL libraries by not linking to
them, and/or not "require()"ing them in a Lua script.

I would also urge that the top-level README at least mention that the
product has components with different licensing requirements, and that
the top-level LICENCE file enumerate all the licenses in use in the module,
along with expressly naming MIT for the code not covered by the enumerated
list.  For cumulative projects (CD requires IM, and IUP requires CD+IM),
the top-level LICENSE file (e.g. for IUP) either explicitly enumerates the
requirements inherited from the lower projects, or else very strongly
points out the scale and importance of licenses in those other packages.

And finally, as before, I would like to see the libraries brought up to
be top-level targets in the Makefile, as is mostly true within IUP, but
should be applied to IM and CD, so that an "EXCLUDE_TARGETS" or perhaps
also an "INCLUDE_TARGETS" macro could be used at the top level of the
project Makefile.

--

cheers,

s-b etc.


_______________________________________________
Iup-users mailing list
Iup-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/iup-users

Reply via email to