On Tue, May 5, 2009 at 7:18 PM, Brian Granger <ellisonbg....@gmail.com> wrote:
>
>> The runtime exception is to allow the use of the gcc runtime, which is
>> a library gcc links to your code when you need to produce a program
>> which runs. AFAICT, if you replaced the gcc runtime with something
>> else, or you just used the object files compiled by gcc (no linking),
>> you wouldn't need this exception.
>
> Yes, but there is also the issue of header files, which also create a
> derived work.  To avoid being a derived work, your code also couldn't
> use any header files that come with GCC (stdio.h, math.h, etc.)
>
>> And note that this applies just to the binary; in general, when you
>> compile source code against a library, it is considered that you
>> produce a derivative work in so far you use (a) header files (b)
>> linking data from the libraries. But it's not clear to me that the
>> original *source code* can be considered a derivative in any way...
>>
>> In the case of sage/python code, there's no compilation... it doesn't
>> look like writing a python/sage script would constitute a derivative
>> work of python or sage, so far as you don't distribute *.pyc files...
>> I guess somebody could argue that using "import" statements, or
>> published APIs can be considered "derivative work" as linking is, but
>> it sounds strange...
>
> The logic end of this argument is that the GPL is meaningless for
> interpreted languages.  But clearly, that is not the case.  Sage does
> have compiled extension modules that get loaded dynamically when you
> run a python script that imports Sage.  Thus, by the FSF
> interpretation, the simple Sage script is a derived work of Sage.

Obviously everyone understands this differently. But I thought that if
I have a script A:

-------
from sage.all import x
print x**2
-------

Then my script has to be GPL, because it is dynamically loading a GPL
library (without any runtime exception) *and* my script doesn't work
without Sage.

If I however write a script B:

-------
sage_present = True
if sage_present:
    from sage.all import x
    print x**2
else:
    from sympy.abc import x
    print x**2
------

Then my script doesn't have to be GPL, because it also runs when Sage
is not present (and sympy is BSD).

Am I right or wrong?

Ondrej

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to 
sage-devel-unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to