Ondrej,

Caveat: my understanding of US copyright law and software licenses.

When you create something (book, photo, program) you automatically
have a copyright in/on that work.  You may control the creation of
copies.  With a GPL/GFDL license you explicitly grant others further
freedoms - someone may make unlimited copies.  They may make
modifications.  BUT, if they make modifications and distribute the
modified version, they must apply the same license.  (Thus the
adjective "viral".)

Your script was your creative work (well, not very creative).  You
could have copied it onto CD's and sold those for whatever price you
could fetch.  I could not buy a CD from you and make copies to sell -
that would violate your copyright.  You have not modified Sage, you
have not copied Sage.  The Sage GPL license has nothing to do with
your script (your creative work).

However, if you post it in the Sage Wiki, then you implicitly agree to
license it under a CC license and we can all use it under the terms of
the license.

The GCC run-time exception covers the case when a program (meant to be
proprietary/copyrighted) copies a portion of the GCC code into the
resulting program.  Its all about making copies.  The copyright
holders of GCC wish to allow this limited type of copying without the
added burden of complying with all the terms of the GPL, even if
someone (intel, say) is using GCC to make proprietary software, as it
helps make GCC universally accepted.  Intel's source code would likely
be copyrighted.

Rob

On May 5, 7:22 pm, Ondrej Certik <ond...@certik.cz> wrote:
> 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