[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