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 -~----------~----~----~----~------~----~------~--~---