[Gambas-user] Gambas and the GPL
Benoit Minisini
gambas at ...2...
Sun Jul 6 23:59:09 CEST 2003
Le Dimanche 6 Juillet 2003 22:03, Rob a écrit :
> Gambas 0.61 is the first version of Gambas that makes it possible to write
> components in Gambas and share them with others in a precompiled state for
> use in their pwn projects. This got me thinking about Gambas and how its
> authors would like to interpret the GPL.
>
> Plainly, any components written using the component C API are GPL'ed
> because they're linked against Gambas itself. With compiled Gambas p-code
> it's not quite so obvious, and depends on whether any code contained within
> Gambas is included in that p-code. The output of compilers like GCC has
> long been held to be free of GPL restrictions but with a language that
> compiles to p-code it can go either way and I think the decision rests with
> Benoit and any other authors who have touched the interpreter/compiler. On
> top of that, we already have our first Gambas-written "library" in the form
> of InputBox, which I would assume is GPL since it's part of the Gambas
> distribution but it's unclear to me whether or not a project that uses
> InputBox would have to be GPL as well.
>
> I personally have no interest in releasing Gambas programs without making
> them GPL, but I'm also thinking that there will be some people who might
> have an interest in doing so or in promoting that practice
> *cough*Lindows*cough* and think it may be time for Benoit and the other
> Gambas developers to decide one way or the other whether Gambas output is
> GPL'ed automatically or not.
>
> Rob
>
Here is what I found on the Free Software Fundation site :
-------------
I am writing free software that uses non-free libraries. What legal issues
come up if I use the GPL?
-------------
If the libraries that you link with fall within the following exception in
the GPL:
However, as a special exception, the source code distributed need not
include anything that is normally distributed (in either source or
binary form) with the major components (compiler, kernel, and so on) of
the operating system on which the executable runs, unless that
component itself accompanies the executable.
then you don't have to do anything special to use them; the requirement to
distribute source code for the whole program does not include those
libraries, even if you distribute a linked executable containing them. Thus,
if the libraries you need come with major parts of a proprietary operating
system, the GPL says people can link your program with them without any
conditions.
If you want your program to link against a library not covered by that
exception, you need to add your own exception, wholly outside of the GPL.
This copyright notice and license notice give permission to link with the
program FOO:
Copyright (C) yyyy <name of copyright holder>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
In addition, as a special exception, <name of copyright
holder> gives permission to link the code of this program with
the FOO library (or with modified versions of FOO that use the
same license as FOO), and distribute linked combinations including
the two. You must obey the GNU General Public License in all
respects for all of the code used other than FOO. If you modify
this file, you may extend this exception to your version of the
file, but you are not obligated to do so. If you do not wish to
do so, delete this exception statement from your version.
Only the copyright holders for the program can legally authorize this
exception. If you wrote the whole program yourself, then assuming your
employer or school does not claim the copyright, you are the copyright
holder--so you can authorize the exception. But if you want to use parts of
other GPL-covered programs by other authors in your code, you cannot
authorize the exception for them. You have to get the approval of the
copyright holders of those programs.
When other people modify the program, they do not have to make the same
exception for their code--it is their choice whether to do so.
Adding this exception eliminates the legal issue, but does nothing about
the more serious problem of using a non-free library: your program won't be
fully usable in a free environment. If your program depends on a non-free
library to do a certain job, it cannot do that job in the Free World. If it
depends on a non-free library to run at all, it cannot be part of a free
operating system such as GNU; it is entirely off limits to the Free World.
So please consider: can you find a way to get the job done without using
this library? Can you write a free replacement for that library?
If the program is already written using the non-free library, perhaps it
is too late to change the decision. You may as well release the program as it
stands, rather than not release it. But please mention in the README that the
need for the non-free library is a drawback, and suggest the task of changing
the program so that it does the same job without the non-free library.
Also please tell us (<tasks at ...181...>) about the non-free library and what
job it does. We could encourage people to develop a free library to do the
same job.
-------------
If a programming language interpreter is released under the GPL, does that
mean programs written to be interpreted by it must be under GPL-compatible
licenses?
-------------
When the interpreter just interprets a language, the answer is no. The
interpreted program, to the interpreter, is just data; a free software
license like the GPL, based on copyright law, cannot limit what data you use
the interpreter on. You can run it on any data (interpreted program), any way
you like, and there are no requirements about licensing that data to anyone.
However, when the interpreter is extended to provide "bindings" to other
facilities (often, but not necessarily, libraries), the interpreted program
is effectively linked to the facilities it uses through these bindings. So if
these facilities are released under the GPL, the interpreted program that
uses them must be released in a GPL-compatible way. The JNI or Java Native
Interface is an example of such a facility; libraries that are accessed in
this way are linked dynamically with the Java programs that call them.
Another similar and very common case is to provide libraries with the
interpreter which are themselves interpreted. For instance, Perl comes with
many Perl modules, and a Java implementation comes with many Java classes.
These libraries and the programs that call them are always dynamically linked
together.
A consequence is that if you choose to use GPL'd Perl modules or Java
classes in your program, you must release the program in a GPL-compatible
way, regardless of the license used in the Perl or Java interpreter that the
combined Perl or Java program will run on.
I hope it will be clear for everyone ! If you want translations of the two
previous points, go to http://www.gnu.org/licenses/gpl-faq.html
Regards,
--
Benoit Minisini
mailto:gambas at ...1...
More information about the User
mailing list