Clarification of Sage and GPL

13 views
Skip to first unread message

Brian Granger

unread,
May 5, 2009, 6:25:19 PM5/5/09
to sage-...@googlegroups.com
Hi,

I have a question about Sage and the GPL. Here is the main question..

IF I write code in a Sage notebook, AND I redistribute the code, do I
need to release my code under the GPL?

Here is a bit of background...

At a conference in the last year, one of the Sage developers was asked
this question, and their answer was...

"You can do whatever you want with your code, you don't have to
release it under the GPL"

In general, I don't think this answer can be right, but I think it is
actually a bit subtle. Here are some of the issues that I see (all of
this assumes that I do want to distribute my code to others)...

* Is the code pure python or does it use the sage syntax? If the code
uses the sage syntax, I think it must be released under the GPL.
* Does the code being written actually use any GPL libraries (like the
sage python package)? If the code uses GPL libraries, I again think
it must be GPL'd.
* Does the code run without sage?
* Does a sage notebook constitute "source code" in the GPL sense?
* Is a notebook (even one that uses the "python" mode) a derivative
work of sage?
* If a sage notebook is "source code" does clicking "Share" in the
notebook constitute "distribution". In other words, if a bunch of
people start sharing sage notebooks, do they all have to be GPL?

The usage case I have in mind is using this to teach University
courses in computational physics. I know others are already doing
this (William is right now I think). If I share notebooks with
students and they with me, does everything have to be GPL? If we only
use non-GPL libraries and the "python" mode of the notebook could we
choose a different license? This is relevant, because I need to
clarify these issues for students and faculty who would use Sage in
this manner. It isn't necessarily bad if the answer is "GPL", but we
all need to know this.

Cheers,

Brian

David Joyner

unread,
May 5, 2009, 6:47:52 PM5/5/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 6:25 PM, Brian Granger <elliso...@gmail.com> wrote:
>
> Hi,
>
> I have a question about Sage and the GPL.  Here is the main question..
>
> IF I write code in a Sage notebook, AND I redistribute the code, do I
> need to release my code under the GPL?
>
> Here is a bit of background...
>
> At a conference in the last year, one of the Sage developers was asked
> this question, and their answer was...
>
> "You can do whatever you want with your code, you don't have to
> release it under the GPL"


I'm pretty sure that is correct.
http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF

Brian Granger

unread,
May 5, 2009, 7:32:22 PM5/5/09
to sage-...@googlegroups.com
>> At a conference in the last year, one of the Sage developers was asked
>> this question, and their answer was...
>>
>> "You can do whatever you want with your code, you don't have to
>> release it under the GPL"

This covers GPL'd editors and compilers. Sage is neither. The Sage
notebook can be used as a code/latex/html editor, but that is not how
most people use it. Sage is also:

1. A Python package
2. A custom language syntax
3. An execution environment/runtime environment
4. A distribution of various software
5. A multi-user collaboration platform

Cheers,

Brian

Rob Beezer

unread,
May 5, 2009, 7:58:55 PM5/5/09
to sage-devel
On May 5, 3:25 pm, Brian Granger <ellisonbg....@gmail.com> wrote:
> IF I write code in a Sage notebook, AND I redistribute the code, do I
> need to release my code under the GPL?


The Sage worksheet at

http://abstract.ups.edu/sage-aata.html

contains Sage code that was not written in a notebook. While that
could be obvious if you actually looked at the file, technically I
think there is no way to prove just where I wrote it - notebook or
not.

So originally, I had a copyright interest in this work. I could have
kept it that way, made it GFDL (or GPL), or use CC (which I did). So
I understand the answer to be that you can do whatever you wish with a
Sage worksheet (the notebook is the interface), no matter what you
(legally) place in it that you have the rights to.

Rob

David Joyner

unread,
May 5, 2009, 8:02:17 PM5/5/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 7:32 PM, Brian Granger <elliso...@gmail.com> wrote:
>
>>> At a conference in the last year, one of the Sage developers was asked
>>> this question, and their answer was...
>>>
>>> "You can do whatever you want with your code, you don't have to
>>> release it under the GPL"
>
>> I'm pretty sure that is correct.
>> http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF
>
> This covers GPL'd editors and compilers.  Sage is neither.  The Sage


It is difficult if not impossible to come up with a general legal
principle of this type covering all software. The basic idea, I think,
is that when you use software to produce a tangible creative work
then you own the copyright of the part you created. License that part
as you wish. In the case of Sage, the sws file produced by the
notebook is yours. Of course, we hope you will license it under
the cc-by-sa or GFDL or something like that and allow us to post it on the
wiki or in some web directory where others can access it, eg
http://sage.math.washington.edu/home/wdj/teaching/worksheets/

Brian Granger

unread,
May 5, 2009, 9:33:55 PM5/5/09
to sage-...@googlegroups.com
> The Sage worksheet at
>
> http://abstract.ups.edu/sage-aata.html
>
> contains Sage code that was not written in a notebook.  While that
> could be obvious if you actually looked at the file, technically I
> think there is no way to prove just where I wrote it - notebook or
> not.

Regardless of the how you wrote this, many people would consider your
worksheet a derived work of Sage and thus say that your current
license (CC) violates the GPL.

> So originally, I had a copyright interest in this work.

Copyright is different from license. You most likely still have full
copyright over the work.

> I could have
> kept it that way, made it GFDL (or GPL), or use CC (which I did).  So
> I understand the answer to be that you can do whatever you wish with a
> Sage worksheet (the notebook is the interface), no matter what you
> (legally) place in it that you have the rights to.

Possibly, which is part of my original question, but your example
brings up a different issue. If you have Sage code (regardless of the
interface) it is likely a derived work of Sage and thus bound by the
GPL.

Jason Grout

unread,
May 5, 2009, 9:44:15 PM5/5/09
to sage-...@googlegroups.com
Brian Granger wrote:
>> The Sage worksheet at
>>
>> http://abstract.ups.edu/sage-aata.html
>>
>> contains Sage code that was not written in a notebook. While that
>> could be obvious if you actually looked at the file, technically I
>> think there is no way to prove just where I wrote it - notebook or
>> not.
>
> Regardless of the how you wrote this, many people would consider your
> worksheet a derived work of Sage and thus say that your current
> license (CC) violates the GPL.


How is it a derived work of Sage? That argument seems to lead to the
conclusion that my C code would be considered a derived work of GCC.
That sounds silly to me (but, of course, that doesn't prevent it from
possibly being true legally :).

Unless, of course, you are actually taking Sage code (i.e., copying a
Sage source file) and changing it. That's clearly a derived work.

Jason

David Joyner

unread,
May 5, 2009, 9:45:27 PM5/5/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 9:33 PM, Brian Granger <elliso...@gmail.com> wrote:
>
>> The Sage worksheet at
>>
>> http://abstract.ups.edu/sage-aata.html
>>
>> contains Sage code that was not written in a notebook.  While that
>> could be obvious if you actually looked at the file, technically I
>> think there is no way to prove just where I wrote it - notebook or
>> not.
>
> Regardless of the how you wrote this, many people would consider your
> worksheet a derived work of Sage and thus say that your current
> license (CC) violates the GPL.


If people think that then I believe they are wrong. (I haven't looked
at the worksheet but I assume it is a worksheet Rob created himself from
scratch and not containing a modification of someone elses.)

Sage functions in a simailr way that GIMP does. If I create an image in
GIMP from scratch then I own the copyright to that image. The license of GIMP,
which functions as an editor, a viewer, has it's own plugins for
postprocessing, ...
have nothing to do with it.

In general, to function as a derived work requires that you modify a
certain number of
lines in the codebase of the software. I think the GPL FAQ has about 30-50
(I don't remember exactly). So if Rob had about 50 lines from the Sage source in
his worksheet, that would require him to license it under the GPL.

Robert Bradshaw

unread,
May 5, 2009, 9:49:32 PM5/5/09
to sage-...@googlegroups.com
On May 5, 2009, at 6:33 PM, Brian Granger wrote:

>> The Sage worksheet at
>>
>> http://abstract.ups.edu/sage-aata.html
>>
>> contains Sage code that was not written in a notebook. While that
>> could be obvious if you actually looked at the file, technically I
>> think there is no way to prove just where I wrote it - notebook or
>> not.
>
> Regardless of the how you wrote this, many people would consider your
> worksheet a derived work of Sage and thus say that your current
> license (CC) violates the GPL.

A sage worksheet is no more a derived work of Sage than a jpeg would
be a derived work of Photoshop/GIMP or a .doc file would be a derived
work of MS Office or OpenOffice. I am using Apple's Mail.app to
compose this message, but the work is entirely mine (well, the non-
quoted part :-). A derived work would be if I took someone else's
worksheet, or even a python file, chapter out of a textbook, etc. and
made a new worksheet out of it.

>> So originally, I had a copyright interest in this work.
>
> Copyright is different from license. You most likely still have full
> copyright over the work.
>
>> I could have
>> kept it that way, made it GFDL (or GPL), or use CC (which I did). So
>> I understand the answer to be that you can do whatever you wish
>> with a
>> Sage worksheet (the notebook is the interface), no matter what you
>> (legally) place in it that you have the rights to.
>
> Possibly, which is part of my original question, but your example
> brings up a different issue. If you have Sage code (regardless of the
> interface) it is likely a derived work of Sage and thus bound by the
> GPL.

Not unless actual code is copied from Sage and/or distributed Sage
with the file. Of course, your code is much more useful with Sage
than without it, but just because it can be used with Sage or
developed on top of it does not make it a derived work unless you
ship them together.

- Robert

Brian Granger

unread,
May 5, 2009, 9:56:22 PM5/5/09
to sage-...@googlegroups.com
> How is it a derived work of Sage?  That argument seems to lead to the
> conclusion that my C code would be considered a derived work of GCC.

Your GCC compiled code is a derived work and that (in my
understanding) is why there exists the so called "runtime exception"
to the GPL that covers this usage case:

http://www.fsf.org/licensing/licenses/gcc-exception.html

> That sounds silly to me (but, of course, that doesn't prevent it from
> possibly being true legally :).

I agree that this is silly.

Brian

Brian Granger

unread,
May 5, 2009, 10:05:52 PM5/5/09
to sage-...@googlegroups.com
Brian,

> A sage worksheet is no more a derived work of Sage than a jpeg would
> be a derived work of Photoshop/GIMP or a .doc file would be a derived
> work of MS Office or OpenOffice.

I disagree. A jpeg or .doc file is not source code in any sense of
the word, thus the GPL is completely irrelevant (I think we agree on
that). But, Sage code *is* source code (written in the same language
as Sage itself) and is thus capable of being a derived work.

> Not unless actual code is copied from Sage and/or distributed Sage
> with the file. Of course, your code is much more useful with Sage
> than without it, but just because it can be used with Sage or
> developed on top of it does not make it a derived work unless you
> ship them together.

The FSF asserts that if I develop code that merely links to GPL
software (static or dynamic), my code is bound by the GPL. I don't
have to modify the GPL software and I don't even have to distribute
it. All I have to do is use it by linking to it:

>>> LINKING == DERIVED WORK
True

But, this interpretation is not shared by everyone. Especially the
part about dynamic linking, which is how Python and Sage load
extension modules. A short history of this issue can be found here:

http://en.wikipedia.org/wiki/GNU_General_Public_License

Cheers,

Brian

Gonzalo Tornaria

unread,
May 5, 2009, 10:09:51 PM5/5/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 10:56 PM, Brian Granger <elliso...@gmail.com> wrote:
>> How is it a derived work of Sage?  That argument seems to lead to the
>> conclusion that my C code would be considered a derived work of GCC.
>
> Your GCC compiled code is a derived work and that (in my
> understanding) is why there exists the so called "runtime exception"
> to the GPL that covers this usage case:
>
> http://www.fsf.org/licensing/licenses/gcc-exception.html

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.

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

IANAL, etc.

Gonzalo

Brian Granger

unread,
May 5, 2009, 10:13:09 PM5/5/09
to sage-...@googlegroups.com
> Sage functions in a simailr way that GIMP does. If I create an image in
> GIMP from scratch then I own the copyright to that image. The license of GIMP,
> which functions as an editor,  a viewer, has it's own plugins for
> postprocessing, ...
> have nothing to do with it.

GIMP is written in a programming language and thus any derived work of
GIMP must also be written in a programming language. So you are
correct: your TIFF or JPEG that GIMP created is not a derived work
(copyright is a completely different issue). But Sage using Python
source code *is* source code by definition, just like Sage itself and
thus it can be a derived work.

> In general, to function as a derived work requires that you modify a
> certain number of
> lines in the codebase of the software. I think the GPL FAQ has about 30-50
> (I don't remember exactly). So if Rob had about 50 lines from the Sage source in
> his worksheet, that would require him to license it under the GPL.

I have trouble keeping up with all the subtle details of the GPL, but
I have never seen anything like this. In a quick search through the
GPL FAQ I didn't find anything even close to this. Unless someone can
show me a reference, I assert that this is completely False. If it
were true, I could take Sage, change 29 lines of code and
re-distribute it under a crazy closed source license.

Cheers,

Brian

Gonzalo Tornaria

unread,
May 5, 2009, 10:13:54 PM5/5/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 11:05 PM, Brian Granger <elliso...@gmail.com> wrote:
> The FSF asserts that if I develop code that merely links to GPL
> software (static or dynamic), my code is bound by the GPL.  I don't
> have to modify the GPL software and I don't even have to distribute
> it.

When you compile and link against a GPL library (static or dynamic),
the resulting binary is derivative work. This is obvious for static
linking, and arguable for dynamic linking (at the very least you are
deriving from the header files, etc). If you distribute this binary,
then you are distributing GPL software, hence the GPL should apply.

Gonzalo

Brian Granger

unread,
May 5, 2009, 10:18:26 PM5/5/09
to sage-...@googlegroups.com
> 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.

Ondrej Certik

unread,
May 5, 2009, 10:22:28 PM5/5/09
to sage-...@googlegroups.com

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

Jason Grout

unread,
May 5, 2009, 10:34:10 PM5/5/09
to sage-...@googlegroups.com

I claim this is still silly. Did you actually load Sage to write the
above two lines? Or did you just type two lines in your email program?
(My guess is the latter). So why in the world would the license for
Sage affect the license of two lines that you typed in an email editor,
all on your own, without asking Sage to do anything? You didn't send
sage along with your email message. Those lines didn't load *anything*
for me; they just sat there looking pretty in my email window.

If you distributed a compiled version of the above two lines, though (so
that they contained bits of code from the Sage library), well, that
seems to be a completely different story.

Jason

Brian Granger

unread,
May 5, 2009, 10:43:49 PM5/5/09
to sage-...@googlegroups.com
> 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?

In the canonical interpretation of the GPL, you are right.

Brian

Rob Beezer

unread,
May 5, 2009, 10:44:31 PM5/5/09
to sage-devel
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:

Brian Granger

unread,
May 5, 2009, 10:45:37 PM5/5/09
to sage-...@googlegroups.com
> I claim this is still silly.

Then I think you think the GPL is silly and I agree with you :-)

> Did you actually load Sage to write the
> above two lines?  Or did you just type two lines in your email program?
>  (My guess is the latter).  So why in the world would the license for
> Sage affect the license of two lines that you typed in an email editor,
> all on your own, without asking Sage to do anything?  You didn't send
> sage along with your email message.  Those lines didn't load *anything*
> for me; they just sat there looking pretty in my email window.
>
> If you distributed a compiled version of the above two lines, though (so
> that they contained bits of code from the Sage library), well, that
> seems to be a completely different story.

The GPL applies to _source_code_, not merely binary distributions.

> Jason
>
>
> >
>

Brian Granger

unread,
May 5, 2009, 10:48:46 PM5/5/09
to sage-...@googlegroups.com
> When you create something (book, photo, program) you automatically
> have a copyright in/on that work.

Yep.

> 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".)

This is all true. But modifying an original work is not the only way
of creating a derived work. Ondrej's script *is* a derived work under
the definition that the FSF gives (when run, it dynamically links to
Sage).

Gonzalo Tornaria

unread,
May 5, 2009, 10:56:26 PM5/5/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 11:48 PM, Brian Granger <elliso...@gmail.com> wrote:
> This is all true.  But modifying an original work is not the only way
> of creating a derived work.  Ondrej's script *is* a derived work under
> the definition that the FSF gives (when run, it dynamically links to
> Sage).

Well... since Ondrej's script hasn't been run *yet* (it just sits in
my mailbox), it hasn't been dynamically linked to sage *yet*. It
follows that it isn't a derived work *yet*. But obviously, Ondrej's
script *will* become a derived work of Sage when somebody *runs it*
somewhere.

Thus, the GPL shares amazing properties with quantum mechanics and
schrodinger's cat.

Gonzalo
PS: sorry, I couldn't resist... :-)

David Joyner

unread,
May 5, 2009, 11:33:40 PM5/5/09
to sage-...@googlegroups.com
This claim ("Ondrej's script *is* a derived work...") is debatable:
http://en.wikipedia.org/wiki/GNU_General_Public_License#The_GPL_in_court


>
> >
>

Ondrej Certik

unread,
May 5, 2009, 11:35:46 PM5/5/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 7:56 PM, Gonzalo Tornaria
<torn...@math.utexas.edu> wrote:
>
> On Tue, May 5, 2009 at 11:48 PM, Brian Granger <elliso...@gmail.com> wrote:
>> This is all true.  But modifying an original work is not the only way
>> of creating a derived work.  Ondrej's script *is* a derived work under
>> the definition that the FSF gives (when run, it dynamically links to
>> Sage).
>
> Well... since Ondrej's script hasn't been run *yet* (it just sits in

Ok, I just run it:

$ sage a.py
Traceback (most recent call last):
File "a.py", line 1, in <module>
from sage.all import x
ImportError: cannot import name x

Does it change anything for you (besides exposing me, that I *didn't*
run the script:)? Is it GPL now? Is it GPL just for me, or for you as
well? :)

Ondrej

mabshoff

unread,
May 5, 2009, 11:46:22 PM5/5/09
to sage-devel
This is the relevant entry from the GPL FAQ:
http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL

To quote:

[quote]
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 binding mechanism; libraries that are accessed in this way are
linked dynamically with the Java programs that call them. These
libraries are also linked with the interpreter. If the interpreter is
linked statically with these libraries, or if it is designed to link
dynamically with these specific libraries, then it too needs to be
released in a GPL-compatible way.

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.
[end quote]

Since Sage has bindings to GPLed libraries, i.e. libSingular to make
one example, according to the FSF a Sage program would be derived from
a GPLed combined work and would have to be licensed GPL compatible *if
distributed*.

So, in the end it depends if you share the FSF's interpretation of the
GPL to be that far reaching or not.

IMHO they are overreaching, but IANAL on one hand and on the other
hand have no problem licensing anything I write in Sage under the GPL.

Cheers,

Michael

David Joyner

unread,
May 6, 2009, 12:03:21 AM5/6/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 10:13 PM, Brian Granger <elliso...@gmail.com> wrote:
>

...

>
>> In general, to function as a derived work requires that you modify a
>> certain number of
>> lines in the codebase of the software. I think the GPL FAQ has about 30-50
>> (I don't remember exactly). So if Rob had about 50 lines from the Sage source in
>> his worksheet, that would require him to license it under the GPL.
>
> I have trouble keeping up with all the subtle details of the GPL, but
> I have never seen anything like this.  In a quick search through the
> GPL FAQ I didn't find anything even close to this.  Unless someone can
> show me a reference, I assert that this is completely False.  If it
> were true, I could take Sage, change 29 lines of code and
> re-distribute it under a crazy closed source license.


Sorry I fail to see how your statements have anything to do with
what I claimed. I'll try to be more clear. To continue the
hypothetical example: If Rob copied (say) 50 lines
of code from Sage verbatim into a worksheet, he would be (under certain
guidelines) pasting copyrightable code into his creative work.
Therefore in theory he should obey the distribution license of
the work he copied. (I am ignoring fair use issues.) More details are in the
book "Intellectual property and open source" by Lindberg
(sorry, I mistakenly referenced the gpl faq earlier).




>
> Cheers,
>
> Brian
>
> >
>

Brian Granger

unread,
May 6, 2009, 12:23:58 AM5/6/09
to sage-...@googlegroups.com
Michael,

Thank you for bringing up this issue as it does clarify some aspect of
Sage derived code and licensing. But, in my mind, the "sage as
interpreter" aspect is a small perturbation on top of the zero-order:

Sage = Python + GPL libraries

That is, for the most part, I view the interpreter as Python itself.
But still the FAQ section is very clear that the presence of all the
GPL libraries loaded into an interpreter is sufficient to make sage
using scripts like Ondrej's GPL bound. I also understand that not
everyone agrees on this interpretation.

But in my mind, that was the TRIVIAL part of the original question I
asked. The more subtle aspect is centered around this issue:

* Does "Sharing" a notebook (with other users of the notebook web app)
constitute distribution and is that sufficient to trigger the
application of the GPL?

In other words, do I need to tell my students...

"When you share your Sage notebooks with me and other's in the class,
you must agree to license them under the GPL"

Cheers,

Brian

PS[0] = even though I choose to use the GPL myself sometimes, this is
what I hate about it. It is too damn complicated. Even on a strongly
pro-GPL project like Sage, it doesn't seem like most people have any
idea what it says and means. I don't mean to pick on anyone
individually, but on this thread, I have heard _multiple_ different
and incompatible interpretations of the GPL.

PS[1] = It is even more ironic to me that Ondrej and I are the ones
arguing for the FSF interpretation of the GPL as we are typically
found in the pro-BSD camp. From my perspective, many Sage devs and
users are doing things with Sage derived code that violates the
canonical interpretation of the GPL. If that is just fine, then does
the GPL actually mean anything? (I think it does even though there is
some ambiguity!)

Prabhu Ramachandran

unread,
May 6, 2009, 12:26:59 AM5/6/09
to sage-...@googlegroups.com
Rob Beezer wrote:
> 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).

IMHO, this is a misunderstanding of the intention of the GPL. In this
particular case Ondrej cannot sell the CD with a non-GPL license for the
CD since his work is a derived work. IIRC, he can license his code
alone under any GPL compatible license. This thread is interesting reading:

http://mail.python.org/pipermail/python-list/2003-November/237666.html


cheers,
prabhu

David Joyner

unread,
May 6, 2009, 12:38:49 AM5/6/09
to sage-...@googlegroups.com
On Wed, May 6, 2009 at 12:23 AM, Brian Granger <elliso...@gmail.com> wrote:
>
> Michael,
>
> Thank you for bringing up this issue as it does clarify some aspect of
> Sage derived code and licensing.  But, in my mind, the "sage as
> interpreter" aspect is a small perturbation on top of the zero-order:
>
> Sage = Python + GPL libraries
>
> That is, for the most part, I view the interpreter as Python itself.
> But still the FAQ section is very clear that the presence of all the
> GPL libraries loaded into an interpreter is sufficient to make sage
> using scripts like Ondrej's GPL bound.  I also understand that not
> everyone agrees on this interpretation.


It is interesting I think that of the two interpretations of the GPL
represented by the many people in this thread, it seems that
there are those in the "Rosen camp" as described in
http://www.linuxjournal.com/article/6366, http://www.rosenlaw.com/lj19.htm
(Rosen is general counsel of OSI) or the Moglen camp (general
counsel for the FSF). My personal interpretations of the use
of the GPL are more in line with Rosen's. For example, Rosen states:

"In most cases we shouldn't care how the linkage between separate
programs was technically done, unless that fact helps determine
whether the creators of the programs designed them with some apparent
common understanding of what a derivative work would look like. We
should consider subtle market-based factors as indicators of intent,
such as whether the resulting program is being sold as an “enhanced”
version of the original, or whether the original was designed and
advertised to be improvable “like a library”."

I think Sage is designed to be improvable "like a library". If you agree and you
agree with Rosen's interpretation then I think you also agree that typical
notebook worksheets are not derivative works. That's my opinion anyway.

Brian Granger

unread,
May 6, 2009, 12:57:11 AM5/6/09
to sage-...@googlegroups.com
> It is interesting I think that of the two interpretations of the GPL
> represented by the many people in this thread, it seems that
> there are those in the "Rosen camp" as described in
> http://www.linuxjournal.com/article/6366, http://www.rosenlaw.com/lj19.htm
> (Rosen is general counsel of OSI) or the Moglen camp (general
> counsel for the FSF). My personal interpretations of the use
> of the GPL are more in line with Rosen's. For example, Rosen states:

While I may appear to agree with the Moglen/FSF interpretation, I much
prefer the Rosen/OSI interpretation. The problem is that if I get
taken to court for a GPL violation, neither Rosen nor Moglen get to
decide my fate, some court does. This creates uncertainty. A
rational response to uncertainty is conservatism. I feel that the
more conservative (and less risky) interpretation is the
Moglen/FSF one as it is more restrictive. I think this is the reason
that the Moglen/FSF interpretation is more commonly taken as "fact" by
companies involved in open source development.

> "In most cases we shouldn't care how the linkage between separate
> programs was technically done, unless that fact helps determine
> whether the creators of the programs designed them with some apparent
> common understanding of what a derivative work would look like. We
> should consider subtle market-based factors as indicators of intent,
> such as whether the resulting program is being sold as an “enhanced”
> version of the original, or whether the original was designed and
> advertised to be improvable “like a library”."
>
> I think Sage is designed to be improvable "like a library". If you agree and you
> agree with Rosen's interpretation then I think you also agree that typical
> notebook worksheets are not derivative works. That's my opinion anyway.

Yes, I agree with this hypothetical.

Cheers,

Brian

Robert Bradshaw

unread,
May 6, 2009, 1:41:24 AM5/6/09
to sage-...@googlegroups.com
On May 5, 2009, at 9:23 PM, Brian Granger wrote:

> Michael,
>
> Thank you for bringing up this issue as it does clarify some aspect of
> Sage derived code and licensing. But, in my mind, the "sage as
> interpreter" aspect is a small perturbation on top of the zero-order:
>
> Sage = Python + GPL libraries
>
> That is, for the most part, I view the interpreter as Python itself.
> But still the FAQ section is very clear that the presence of all the
> GPL libraries loaded into an interpreter is sufficient to make sage
> using scripts like Ondrej's GPL bound. I also understand that not
> everyone agrees on this interpretation.

The concept of "derivative work" transcends the GPL, what was quoted
was the FSF's interpretation of copyright law, which is obviously
going to be bias towards maximal viral impact. Personally, I think
qualitative aspects are more important than technical aspects (static
vs. dynamic linking) in asking whether or not something is morally or
legally a derivative work.

One could argue with exactly the same logic that a Mathematica
worksheet is a derivative work of Mathematica, and a Matlab script is
a derivative work of Matlab. (Both are interpreters + large
libraries, with much of the underlying core written in the exact same
language that the end user uses). The copyrights of these two
programs (all rights reserved) don't allow redistribution at all,
does that mean every shared Mathematica/Matlab script (without the
express permission of the respective coorperations) is a violation of
copyright? I think not, and the same applies to Sage worksheets and
scripts.

The repercussions of this could mean that papers and books couldn't
be published with code snippets in them, one would require copyright
notices for anyone using Sage in their homework (and showing their
work), and we've all been violating the GPL by claiming the wiki is
licensed under Creative Commons. (OK, maybe small snippets could be
justified under fair use, but still...)

> But in my mind, that was the TRIVIAL part of the original question I
> asked. The more subtle aspect is centered around this issue:
>
> * Does "Sharing" a notebook (with other users of the notebook web app)
> constitute distribution and is that sufficient to trigger the
> application of the GPL?
>
> In other words, do I need to tell my students...
>
> "When you share your Sage notebooks with me and other's in the class,
> you must agree to license them under the GPL"

I think sharing a worksheet, whether it be clicking on the "publish"
button or emailing/posting a .sws file all have the same
repercussions. In fact, flipping the permissions bit and pointing you
to the file under a shared filesystem with the intent that you read
it would probably classify as "distribution." Ultimately, in the US
system at least, it is the courts that will decide this, but as long
as one is clearly respecting the intent of the GPL (which I don't
think forces Sage scripts to be GPL'd, though of course that's up to
interpretation as well) one retains the respect of the community, and
if one is worried about the nitpicky legal aspects, I doubt any Sage
developer is going to be suing any of your students for copyright
violation for publishing an original notebook :-).

> Cheers,
>
> Brian
>
> PS[0] = even though I choose to use the GPL myself sometimes, this is
> what I hate about it. It is too damn complicated. Even on a strongly
> pro-GPL project like Sage, it doesn't seem like most people have any
> idea what it says and means. I don't mean to pick on anyone
> individually, but on this thread, I have heard _multiple_ different
> and incompatible interpretations of the GPL.

I wholeheartedly agree. Sometimes I think it's unfortunate that the
de-facto standard for copyleft licenses ended up being such a lengthy
and messy one. This is one of the beauties of the BSD--it's so clean.
Even the CC got this mostly right (it's two pages of legalize, but
much better than most). However, if one wants to release code in a
copyleft manner, going with the GPL is often a better path than
choosing an obscure/incompatible one.

> PS[1] = It is even more ironic to me that Ondrej and I are the ones
> arguing for the FSF interpretation of the GPL as we are typically
> found in the pro-BSD camp. From my perspective, many Sage devs and
> users are doing things with Sage derived code that violates the
> canonical interpretation of the GPL. If that is just fine, then does
> the GPL actually mean anything? (I think it does even though there is
> some ambiguity!)

I don't think it's odd at all--the more draconian interpretation you
have of the GPL the more likely you're to be found in the pro-BSD camp.

- Robert

William Stein

unread,
May 6, 2009, 1:50:58 AM5/6/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 3:25 PM, Brian Granger <elliso...@gmail.com> wrote:
>
> Hi,
>
> I have a question about Sage and the GPL.  Here is the main question..
>
> IF I write code in a Sage notebook, AND I redistribute the code, do I
> need to release my code under the GPL?
>
> Here is a bit of background...
>
> At a conference in the last year, one of the Sage developers was asked
> this question, and their answer was...
>
> "You can do whatever you want with your code, you don't have to
> release it under the GPL"
>
> In general, I don't think this answer can be right, but I think it is
> actually a bit subtle.  Here are some of the issues that I see (all of
> this assumes that I do want to distribute my code to others)...
>
> * Is the code pure python or does it use the sage syntax?  If the code
> uses the sage syntax, I think it must be released under the GPL.
> * Does the code being written actually use any GPL libraries (like the
> sage python package)?  If the code uses GPL libraries, I again think
> it must be GPL'd.

Publicly distributed code using GPL'd library must be GPL'd.

> * Does the code run without sage?
> * Does a sage notebook constitute "source code" in the GPL sense?

Yes.

> * Is a notebook (even one that uses the "python" mode) a derivative
> work of sage?

No.

> * If a sage notebook is "source code" does clicking "Share" in the
> notebook constitute "distribution".  In other words, if a bunch of
> people start sharing sage notebooks, do they all have to be GPL?

No. This is internal distribution, so the GPL doesn't apply. This is
no different than the NSA (say) distributing a program from one
researcher to another, and obviously they don't have to GPL their
code.

> The usage case I have in mind is using this to teach University
> courses in computational physics.  I know others are already doing
> this (William is right now I think).  If I share notebooks with
> students and they with me, does everything have to be GPL?

No, definitely not. But if you post the notebooks publicly and they make use
of the sage library, then they have to be GPL'd.

>  If we only
> use non-GPL libraries and the "python" mode of the notebook could we
> choose a different license?

Yes.

>  This is relevant, because I need to
> clarify these issues for students and faculty who would use Sage in
> this manner.  It isn't necessarily bad if the answer is "GPL", but we
> all need to know this.

You might consider consulting with a lawyer at your university.
Universities sometimes have
lawyers for this sort of thing.

>

William

Ondrej Certik

unread,
May 6, 2009, 2:00:32 AM5/6/09
to sage-...@googlegroups.com

I think this very much depends on what's written in the license of
Mathematica and Maple. I didn't read their license, but I would not be
surprised if they do *not* restrict licenses of your own scripts. GPL,
on the other hand, speaks about derivative works and licensing your
own stuff, that uses a GPLed library/code.

So I think that from the fact, that you can license your own
Mathematica code using any license you want, doesn't follow that you
can license a Sage script using any license you want --- in fact, as
William just clarified, if the script uses a Sage code, and you
redistribute it publicly, it has to be GPL.

William, so do you think that my script A above has to be GPL? I
already distributed it publicly on this list.

But what about FSF suing Brian?

>
>> Cheers,
>>
>> Brian
>>
>> PS[0] = even though I choose to use the GPL myself sometimes, this is
>> what I hate about it.  It is too damn complicated.  Even on a strongly
>> pro-GPL project like Sage, it doesn't seem like most people have any
>> idea what it says and means.  I don't mean to pick on anyone
>> individually, but on this thread, I have heard _multiple_ different
>> and incompatible interpretations of the GPL.
>
> I wholeheartedly agree. Sometimes I think it's unfortunate that the
> de-facto standard for copyleft licenses ended up being such a lengthy
> and messy one. This is one of the beauties of the BSD--it's so clean.
> Even the CC got this mostly right (it's two pages of legalize, but
> much better than most). However, if one wants to release code in a
> copyleft manner, going with the GPL is often a better path than
> choosing an obscure/incompatible one.
>
>> PS[1] = It is even more ironic to me that Ondrej and I are the ones
>> arguing for the FSF interpretation of the GPL as we are typically
>> found in the pro-BSD camp.  From my perspective, many Sage devs and
>> users are doing things with Sage derived code that violates the
>> canonical interpretation of the GPL.  If that is just fine, then does
>> the GPL actually mean anything?  (I think it does even though there is
>> some ambiguity!)
>
> I don't think it's odd at all--the more draconian interpretation you
> have of the GPL the more likely you're to be found in the pro-BSD camp.

Exactly, I wanted to point this out too.

Ondrej

Roman Pearce

unread,
May 6, 2009, 2:00:45 AM5/6/09
to sage-devel
If you were to print out the source code and distribute it in a book,
it should not change the conclusions of copyright law. People tend to
get very caught up in technical theories, and they often view the law
the way they view software, but a judge will do a basic "sanity
check". If you published your own script in a book, would it be a
"derived work" of the interpreter ? No. If you published binary
executable code in a book, produced by running your own code through
GCC, is it partially derived from GCC ? Yes, and hence the exception
for GCC. Now for dynamic linking, what if you wrote a virus that
exploits and infects a critical Windows file, and you publish its
source code in a book. Is that derived from Windows ? Probably not,
because the thing has creative value distinct from Windows, but good
luck fighting Microsoft in court! The point is, it doesn't matter how
you distribute, so for human readable formats it is often instructive
to ask whether you would need permission to publish it in print.

mabshoff

unread,
May 6, 2009, 2:09:54 AM5/6/09
to sage-devel


On May 5, 10:50 pm, William Stein <wst...@gmail.com> wrote:
> On Tue, May 5, 2009 at 3:25 PM, Brian Granger <ellisonbg....@gmail.com> wrote:

<SNIP>

> > * Is the code pure python or does it use the sage syntax?  If the code
> > uses the sage syntax, I think it must be released under the GPL.
> > * Does the code being written actually use any GPL libraries (like the
> > sage python package)?  If the code uses GPL libraries, I again think
> > it must be GPL'd.
>
> Publicly distributed code using GPL'd library must be GPL'd.

Well, having thought about this for a while I would like to point out
something: The Sage notebook communicates with a Sage python process
via pseudo tty. I.e. once the Sage notebook is spun off and no longer
uses GPLed libraries that are used as extensions the situation in the
FSF's FAQ no longer applies. As long as there is a socket or fork()
between your code and Sage the GPL no longer applies.

Something closely related it a known hole in the GPL, i.e. you can
take GPLed code, modify it, expose it to the user via a webinterface
and the GPL does not apply here since no distribution happens. That is
why we have the Affero general public license. RMS has obviously
bitched about how "software as a service" is taking away out freedom,
but yadda yadda yadda :).

<SNIP>

> >  This is relevant, because I need to
> > clarify these issues for students and faculty who would use Sage in
> > this manner.  It isn't necessarily bad if the answer is "GPL", but we
> > all need to know this.
>
> You might consider consulting with a lawyer at your university.
> Universities sometimes have
> lawyers for this sort of thing.

+1

Note that any GPLed codebase like Singular or pari would also be viral
to high level code and I cannot believe that this is the way the GPL
is intended. Anything using readline, i.e. IPython, would be infected,
too, and that goes way too far IMHO (You can obviously use libedit or
no readline at all to work around this).

In the end the FSF seems to be rather wishy washy about the whole
thing, i.e. compare the recent discussion about Maxima where a
potential export licenses requirement was mandated by the DOE and it
was cleared by a FSF license engineer that adding the DOE note to
COPYING would be GPL compatible. That restriction IMHO clearly is
against the spirit of the GPL. But there are loads of people at the
FSF who get their panties in a twist about using binary firmware in
the Linux kernel, etc. And don't get me started on the [L]GPL V3 ...

> William

Licensing discussions just suck and are a waste of time. Sigh ....

Cheers,

Michael

Brian Granger

unread,
May 6, 2009, 2:12:41 AM5/6/09
to sage-...@googlegroups.com
William,

Thanks for your replies. I mostly want to know what the consensus
interpretation of these issues is amongst the Sage devs. Slowly, I am
getting a picture of what this consensus looks like.

> Publicly distributed code using GPL'd library must be GPL'd.

Great, to first order that is my understanding as well.

>> * Does the code run without sage?
>> * Does a sage notebook constitute "source code" in the GPL sense?
>
> Yes.

Again, this makes sense to me. Interestingly enough though, it
doesn't seem like all of the people on the this feel this way.

>> * Is a notebook (even one that uses the "python" mode) a derivative
>> work of sage?
>
> No.

>> * If a sage notebook is "source code" does clicking "Share" in the
>> notebook constitute "distribution".  In other words, if a bunch of
>> people start sharing sage notebooks, do they all have to be GPL?
>
> No.  This is internal distribution, so the GPL doesn't apply.  This is
> no different than the NSA (say) distributing a program from one
> researcher to another, and obviously they don't have to GPL their
> code.

Ahh, this distinction between internal sharing and public distribution
is important and I hadn't thought about that.

>> The usage case I have in mind is using this to teach University
>> courses in computational physics.  I know others are already doing
>> this (William is right now I think).  If I share notebooks with
>> students and they with me, does everything have to be GPL?
>
> No, definitely not.   But if you post the notebooks publicly and they make use
> of the sage library, then they have to be GPL'd.

Great, this is what I thought. But, then some (or even many) Sage
users and devs are in violation of the GPL. I think it would be
useful to document these things somewhere so Sage users would know
very clearly how the GPL affects them.

>>  If we only
>> use non-GPL libraries and the "python" mode of the notebook could we
>> choose a different license?
>
> Yes.

Great.

Thanks!

Brian

William Stein

unread,
May 6, 2009, 2:12:40 AM5/6/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 10:41 PM, Robert Bradshaw
<robe...@math.washington.edu> wrote:
>
> On May 5, 2009, at 9:23 PM, Brian Granger wrote:
>
>> Michael,
>>
>> Thank you for bringing up this issue as it does clarify some aspect of
>> Sage derived code and licensing.  But, in my mind, the "sage as
>> interpreter" aspect is a small perturbation on top of the zero-order:
>>
>> Sage = Python + GPL libraries
>>
>> That is, for the most part, I view the interpreter as Python itself.
>> But still the FAQ section is very clear that the presence of all the
>> GPL libraries loaded into an interpreter is sufficient to make sage
>> using scripts like Ondrej's GPL bound.  I also understand that not
>> everyone agrees on this interpretation.
>
> The concept of "derivative work" transcends the GPL, what was quoted
> was the FSF's interpretation of copyright law, which is obviously
> going to be bias towards maximal viral impact. Personally, I think
> qualitative aspects are more important than technical aspects (static
> vs. dynamic linking) in asking whether or not something is morally or
> legally a derivative work.
>
> One could argue with exactly the same logic that a Mathematica
> worksheet is a derivative work of Mathematica, and a Matlab script is
> a derivative work of Matlab.

Note that the GPL is "viral", but the MATLAB/Mathematica/etc copyrights are not.

>> "When you share your Sage notebooks with me and other's in the class,
>> you must agree to license them under the GPL"
>
> I think sharing a worksheet, whether it be clicking on the "publish"
> button or emailing/posting a .sws file all have the same
> repercussions.
> In fact, flipping the permissions bit and pointing you
> to the file under a shared filesystem with the intent that you read
> it would probably classify as "distribution."

The GPLdistinguishes between sharing privately (in an organization)
and publishing publicly. See the GPL FAQ:

"Does the GPL require that source code of modified versions be posted
to the public?
The GPL does not require you to release your modified version, or
any part of it. You are free to make modifications and use them
privately, without ever releasing them. This applies to organizations
(including companies), too; an organization can make a modified
version and use it internally without ever releasing it outside the
organization.

But if you release the modified version to the public in some way,
the GPL requires you to make the modified source code available to the
program's users, under the GPL.

Thus, the GPL gives permission to release the modified program in
certain ways, and not in other ways; but the decision of whether to
release it is up to you."


--
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

William Stein

unread,
May 6, 2009, 2:15:39 AM5/6/09
to sage-...@googlegroups.com
On Tue, May 5, 2009 at 11:12 PM, Brian Granger <elliso...@gmail.com> wrote:
>> No, definitely not.   But if you post the notebooks publicly and they make use
>> of the sage library, then they have to be GPL'd.
>
> Great, this is what I thought.

> But, then some (or even many) Sage
> users and devs are in violation of the GPL.

Really? Who?

William

Brian Granger

unread,
May 6, 2009, 2:30:58 AM5/6/09
to sage-...@googlegroups.com
At the beginning of this thread, someone posted a link to the Sage worksheet:

http://abstract.ups.edu/sage-aata.html

That is 1) being publicly distributed and 2) is not being released
under the GPL.

Plus, anyone can create an account on the public Sage notebook
servers, so basically any worksheet that is Shared there falls under
this category.

Finally a quick Google for "Sage Worksheet" or ".sws" reveals *many*
public Sage worksheets, and at a glance, none of them have any
licensing information.

Now that I think about it, how would I release a worksheet under the
GPL. The usual way is to add:

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 3 of the License, or
(at your option) any later version....etc.

to the source. Is there a simple way of doing that? Would it make
sense to enable notebook users to add this to their Worksheet by
simply clicking a box "Make this GPL." Then, when a Worksheet is
loaded, if it has the GPL text, the notebook could display it or
notify the user "This Worksheet is GPLd."

Cheers,

Brian

Brian Granger

unread,
May 6, 2009, 2:34:23 AM5/6/09
to sage-...@googlegroups.com
> Licensing discussions just suck and are a waste of time. Sigh ....

Yes, I fully a agree with you....except when people learn new things
about the GPL. I think some important things have come out of this
discussion:

* A notebook/Worksheet is source code and can potentially be a
derivative work of Sage or any of the libraries that Sage ships with.

* If a particular Worksheet uses a GPL library, and that Worksheet is
distributed to the public (not just Shared internally on a single Sage
notebook server), it must be GPL.

* Currently, there is not a clear way of indicating or learning about
the license of a Worksheet.

* The GPL is confusing as hell...

Cheers,

Brian

William Stein

unread,
May 6, 2009, 2:41:41 AM5/6/09
to sage-...@googlegroups.com

Irregardless of all the licensing discussion above about derived
works, etc, it would be nice to provide a simple way for users to GPL
a worksheet, along with a link to the GPL, GPL faq, etc.

-- William

mabshoff

unread,
May 6, 2009, 2:45:23 AM5/6/09
to sage-devel


On May 5, 11:34 pm, Brian Granger <ellisonbg....@gmail.com> wrote:
> > Licensing discussions just suck and are a waste of time. Sigh ....
>
> Yes, I fully a agree with you....except when people learn new things
> about the GPL.  I think some important things have come out of this
> discussion:
>
> * A notebook/Worksheet is source code and can potentially be a
> derivative work of Sage or any of the libraries that Sage ships with.

Yep.

> * If a particular Worksheet uses a GPL library, and that Worksheet is
> distributed to the public (not just Shared internally on a single Sage
> notebook server), it must be GPL.

I think this is far from clear, but the FSF's interpretation of the
license. The OSI thinks differently for example as pointed out
earlier.

> * Currently, there is not a clear way of indicating or learning about
> the license of a Worksheet.

That might be so, but why would it matter? If you write code and link
against a GPLed library there is no mechanism to remind someone that
they have to abide by the GPL. But I agree that it is far from obvious
to a user of Sage that the GPL of worksheets is even an issue and
might apply to published Sage code. It would be nice to add something
to the manual that gives various POVs of the problem, but in the end
it should conclude that anyone concerned about this should consult a
lawyer since the Sage project is not in the position to give legal
advice.

> * The GPL is confusing as hell...

The main issue here is that there is the letter of the law and the
intend of the GPL. And there is way too much of a grey zone (even if
you limit yourself to US case law) to make me comfortable. And I would
like to emphasize again that just one should just not take the FSF by
their word since they are clearly not a neutral player here.

> Cheers,
>
> Brian

Cheers,

Michael

William Stein

unread,
May 6, 2009, 2:53:32 AM5/6/09
to sage-...@googlegroups.com
We should be honest to our users about some of the potential pitfalls
and responsibilities associated with using Sage. When users (or
developers) build their work on Sage, they are building their work on
GPL'd code, and there are certainly ramifications involved in doing
this. For example, they can't just take any of their Sage programs
and close source and sell them, etc. It doesn't do any good in the
long run to pretend there aren't such ramifications. The situation
with Sage is really different than the situation with GIMP or
OpenOffice or Emacs, and we should be upfront about that.

-- William

>
>> * The GPL is confusing as hell...
>
> The main issue here is that there is the letter of the law and the
> intend of the GPL. And there is way too much of a grey zone (even if
> you limit yourself to US case law) to make me comfortable. And I would
> like to emphasize again that just one should just not take the FSF by
> their word since they are clearly not a neutral player here.
>
>> Cheers,
>>
>> Brian
>
> Cheers,
>
> Michael
> >
>



Rob Beezer

unread,
May 6, 2009, 2:57:53 AM5/6/09
to sage-devel, Brian Granger
OK, Brian, you beat me to it, I was going to post this link again in
an effort to prolong this thread. ;-)

This link points to a tutorial about how to use Sage to do group
theory. PDF and *.sws formats. Lots of text, but significant
sections of Sage code, including an @interact. Is this a "text" or a
"program"? Book or code? No import statement anywhere - i'm not
linking to anything. A reader/user can do what they want with it -
read it or manipulate it digitally (ie upload it into Sage). Is this
like a book or instruction manual and I can license it as GFDL or CC,
as I choose? Or is this a program and the FSF FAQ takes precedence
and I *must* yield to their overarching interpretation of their
license?

I claim, like Ondrej's hypothetical CD, that this is my creative work,
independent of Sage, and I can do what I want with it, beginning with
a strict copyright. I have not used Sage to create it, William Stein
(as titular copyright holder of Sage) has no sway, and neither does
FSF. I have entered into no contract with Sage, Stein or the FSF in
the course of its creation, I haven't copied their "materials" or used
them in any fashion to create my tutorial. I'm totally
independent. Words on a page - my own thoughts and expressions - my
creative output. Maybe I'll revoke the CC license on my next revision
and users can pay me a royalty for every web-view.

I think the notion that I am beholden to apply the GPL to a work
created with a text editor (Kate), a Python Script (written
personally) and translation tool with a Latex Public License (Tex4ht)
is absurd. Just where does Sage's GPL license apply to this?

> http://abstract.ups.edu/sage-aata.html
> That is 1) being publicly distributed and 2) is not being released
> under the GPL.

I plan to keep it that way.

Rob

Robert Bradshaw

unread,
May 6, 2009, 2:57:54 AM5/6/09
to sage-...@googlegroups.com

The MATLAB/Mathematica/etc copyrights don't allow any redistribution,
so if their worksheets are derivative works, then one isn't allowed
to share them at all. (On the other hand, if they're not derivative
works, then nor is a Sage worksheet, and so it's not required to be
GPL'd).

>>> "When you share your Sage notebooks with me and other's in the
>>> class,
>>> you must agree to license them under the GPL"
>>
>> I think sharing a worksheet, whether it be clicking on the "publish"
>> button or emailing/posting a .sws file all have the same
>> repercussions.
>> In fact, flipping the permissions bit and pointing you
>> to the file under a shared filesystem with the intent that you read
>> it would probably classify as "distribution."
>
> The GPLdistinguishes between sharing privately (in an organization)
> and publishing publicly. See the GPL FAQ:

Also, does that also mean no Sage code could be included in a paper
in a journal that required signing the copyright away? What about
publishing (collections of) worksheets under the CC license? Code
snippets in books? Are your books GPL compatible? (Maybe you could
claim fair use.)

I have no trouble licensing code under the GPL, but I do think this
places an onerous and inappropriate burden on all *users* of Sage,
and the GPL is supposed to be about modifying/distributing code.

- Robert

Ondrej Certik

unread,
May 6, 2009, 2:58:55 AM5/6/09
to sage-...@googlegroups.com

Hopefully it can be made somehow so that it doesn't obstruct so much
space. I hate when there is a short few lines script and a page of
copyright/license stuff. That said, I of course respect copyright and
everything --- I just wish there was some simpler way of specifying
all that.


On Tue, May 5, 2009 at 11:45 PM, mabshoff <mabs...@googlemail.com> wrote:
>
>
>
> On May 5, 11:34 pm, Brian Granger <ellisonbg....@gmail.com> wrote:
>> * If a particular Worksheet uses a GPL library, and that Worksheet is
>> distributed to the public (not just Shared internally on a single Sage
>> notebook server), it must be GPL.
>
> I think this is far from clear, but the FSF's interpretation of the
> license. The OSI thinks differently for example as pointed out
> earlier.

I think important is what Sage developer think/intend, isn't it? And I
think William has made this clear.

>
>> * Currently, there is not a clear way of indicating or learning about
>> the license of a Worksheet.
>
> That might be so, but why would it matter? If you write code and link
> against a GPLed library there is no mechanism to remind someone that
> they have to abide by the GPL. But I agree that it is far from obvious
> to a user of Sage that the GPL of worksheets is even an issue and
> might apply to published Sage code. It would be nice to add something
> to the manual that gives various POVs of the problem, but in the end
> it should conclude that anyone concerned about this should consult a

> lawyer since the Sage project is not in the position to give legal
> advice.


>
>> * The GPL is confusing as hell...
>
> The main issue here is that there is the letter of the law and the
> intend of the GPL. And there is way too much of a grey zone (even if
> you limit yourself to US case law) to make me comfortable. And I would
> like to emphasize again that just one should just not take the FSF by
> their word since they are clearly not a neutral player here.

Well, no one is a neutral player, right? :)

But honestly, I am always astonished by a thread like this and the the
wide range of opinions of what the (L)GPL actually allow you to or
not.


On Tue, May 5, 2009 at 11:53 PM, William Stein <wst...@gmail.com> wrote:
>
> We should be honest to our users about some of the potential pitfalls
> and responsibilities associated with using Sage. When users (or
> developers) build their work on Sage, they are building their work on
> GPL'd code, and there are certainly ramifications involved in doing
> this. For example, they can't just take any of their Sage programs
> and close source and sell them, etc. It doesn't do any good in the
> long run to pretend there aren't such ramifications. The situation
> with Sage is really different than the situation with GIMP or
> OpenOffice or Emacs, and we should be upfront about that.


That'd be cool. I'll help with this text, as I will use it for SPD[0] too.


Ondrej

P.S., let me know, if we should move this to the newly created
sage-flame list. :)

P.P.S. But anyway, when my school finishes, I think I'll write a blog
about this thread, it was very interesting.

[0] http://code.google.com/p/spdproject/

Prabhu Ramachandran

unread,
May 6, 2009, 3:03:28 AM5/6/09
to sage-...@googlegroups.com
William Stein wrote:
> On Tue, May 5, 2009 at 3:25 PM, Brian Granger <elliso...@gmail.com> wrote:
>> * Is the code pure python or does it use the sage syntax? If the code
>> uses the sage syntax, I think it must be released under the GPL.
>> * Does the code being written actually use any GPL libraries (like the
>> sage python package)? If the code uses GPL libraries, I again think
>> it must be GPL'd.
>
> Publicly distributed code using GPL'd library must be GPL'd.

I'm not so sure it has to be GPL. I think it has to be GPL compatible.
See this post for example:

http://mail.python.org/pipermail/python-list/2003-November/237761.html

There is a link to an email by RMS regarding this in the above.

http://mail.gnome.org/archives/foundation-list/2001-December/msg00034.html

This is another reason why the GPL can get so confusing. I really don't
know what the definitive answer is and it looks like all answers are
possible depending on who you talk to.

cheers,
prabhu

William Stein

unread,
May 6, 2009, 3:29:20 AM5/6/09
to sage-...@googlegroups.com

Building software on top of GPL'd libraries like Sage *does* have
serious implications toward sharing. That's sort of the point of the
GPL'd. There's no sense in hiding that.

Suppose you spend three years implementing an algorithm as part of
Sage to compute X (say some Monsky-Washnitzer cohomology
computations). Then somebody else writes and publishes a clever paper
that includes a several-page Sage program that uses your
implementation of X (plus many other things in Sage) to compute Y (say
p-adic Regulators of Jacobians of genus 2 curves). Would you
definitely be allowed to use their new code and include it in Sage?

I think the GPL was designed to ensure that computer programs that
build on your programs must be shared under compatible conditions.
This has the pro that it means that your work is protected in that
when people build on it, they can't "hoard" their improvements. It
has the drawback that it puts an onerous (and inappropriate?) burden
on those same people, that when they on your GPL'd work, they can't
hoard their improvements.

In one sense at least, Sage can never be an alternative to
Maple/Mathematica/Matlab/Magma, etc. With the Ma's, if one wrote a
big program on top of them, and wanted to distribute the program as a
complete self-contained closed source program (say something like a
standalone Mathematica demonstration), at least it would be
technically and legally possible. One would have to do some sort of
contract with say Wolfram, Inc., but that's quite reasonable. With
Sage that would be impossible, since the copyright is spread over
hundreds of people (some dead). Scipy/Numpy/Enthought's stack
does provide this extra feature, which Sage never will.

There's a little good and a little bad in everything.

William

Robert Bradshaw

unread,
May 6, 2009, 4:27:08 AM5/6/09
to sage-...@googlegroups.com
On May 6, 2009, at 12:29 AM, William Stein wrote:

> On Tue, May 5, 2009 at 11:57 PM, Robert Bradshaw
> <robe...@math.washington.edu> wrote:
>> What about
>> publishing (collections of) worksheets under the CC license? Code
>> snippets in books? Are your books GPL compatible? (Maybe you could
>> claim fair use.)
>>
>> I have no trouble licensing code under the GPL, but I do think this
>> places an onerous and inappropriate burden on all *users* of Sage,
>> and the GPL is supposed to be about modifying/distributing code.
>
> Building software on top of GPL'd libraries like Sage *does* have
> serious implications toward sharing. That's sort of the point of the
> GPL'd. There's no sense in hiding that.

For sure. That's perhaps the one useful purpose threads like this serve.

> Suppose you spend three years implementing an algorithm as part of
> Sage to compute X (say some Monsky-Washnitzer cohomology
> computations). Then somebody else writes and publishes a clever paper
> that includes a several-page Sage program that uses your
> implementation of X (plus many other things in Sage) to compute Y (say
> p-adic Regulators of Jacobians of genus 2 curves). Would you
> definitely be allowed to use their new code and include it in Sage?

I would be more apt to label this a derivative work (not just for
convenience, the same would apply if I was the one building on
someone else's stuff). If a paper had a chunk of code illustrating an
elliptic curve has a needed property using the MW computations, I
probably wouldn't.

As an aside, I wonder how some journal would react to being legally
required to provide the source in a machine readable format due to
their being a distributor? (Guess one would have to work that out
before publishing...)

> I think the GPL was designed to ensure that computer programs that
> build on your programs must be shared under compatible conditions.
> This has the pro that it means that your work is protected in that
> when people build on it, they can't "hoard" their improvements. It
> has the drawback that it puts an onerous (and inappropriate?) burden
> on those same people, that when they on your GPL'd work, they can't
> hoard their improvements.
>
> In one sense at least, Sage can never be an alternative to
> Maple/Mathematica/Matlab/Magma, etc. With the Ma's, if one wrote a
> big program on top of them, and wanted to distribute the program as a
> complete self-contained closed source program (say something like a
> standalone Mathematica demonstration), at least it would be
> technically and legally possible. One would have to do some sort of
> contract with say Wolfram, Inc., but that's quite reasonable. With
> Sage that would be impossible, since the copyright is spread over
> hundreds of people (some dead). Scipy/Numpy/Enthought's stack
> does provide this extra feature, which Sage never will.
>
> There's a little good and a little bad in everything.

First off, I *definitly* think GPL is the right license for Sage,
because of (and despite) all its implications.

I guess my point is that I'm making a distinction between documents
that happen to use Sage, and new programs built on top of Sage. In
the former camp are things like tutorials and the homework exercise
worksheets for your 480 class, or your modular forms and number
theory books. These are not, in my mind, derivative works of Sage
(though I'd hope people choose to keep them open). Of course there is
a lot of grey area, and I think one hits the derivative work area
long before one is shipping modified copies of Sage in its entirety.
I would consider many Sage worksheets derivative works, but I don't
think the implication is automatic.

- Robert

Harald Schilly

unread,
May 6, 2009, 10:12:24 AM5/6/09
to sage-devel
On May 6, 8:58 am, Ondrej Certik <ond...@certik.cz> wrote:
> But honestly, I am always astonished by a thread like this and the the
> wide range of opinions of what the (L)GPL actually allow you to or
> not.

Me too, wow. My opinion is, that if you write a sage script, it's just
a script. You can do with it what you want since you have the
copyright. Distribution complications with the GPL is not an issue,
since your script does not include Sage at all -- it just uses it, is
interpreted by and formost, Sage is intended to be used that way.
Theoretically, also something else could interpret that script ...
e.g. a webserver that reads a text file and sends out something! A
derived work is something that has a work as an input and builds or
modifies it. If you write Sage code from scratch, this doesn't apply,
too.

from http://www.linuxjournal.com/article/6366
"""
The meaning of derivative work will not be broadened to include
software created by linking to library programs that were designed and
intended to be used as library programs. When a company releases a
scientific subroutine library, or a library of objects, for example,
people who merely use the library, unmodified, perhaps without even
looking at the source code, are not thereby creating derivative works
of the library.
"""
-- Lawrence Rosen, attorney in private practice for opensource.org

H

kcrisman

unread,
May 6, 2009, 10:41:36 AM5/6/09
to sage-devel
Wow, I really missed quite a thread.

So is there any final consensus on this? Is the following Sage
program automatically GPL?

{{{
2+2
}}}

Or only in the following form?

{{{
Integer(2)+Integer(2)
}}}

Please no flames! I only wanted to know if there was a consensus, I
got sort of confused by 50 messages on this in my RSS reader at once.

If there isn't a consensus (and it seems there is not) then please
don't reply, and I will go along with Rob B. and publish whatever Sage
worksheets I want to under whatever license I deem appropriate, if
any.

- kcrisman

Gonzalo Tornaria

unread,
May 6, 2009, 11:06:35 AM5/6/09
to sage-...@googlegroups.com
On Wed, May 6, 2009 at 4:29 AM, William Stein <wst...@gmail.com> wrote:
> Suppose you spend three years implementing an algorithm as part of
> Sage to compute X (say some Monsky-Washnitzer cohomology
> computations).  Then somebody else writes and publishes a clever paper
> that includes a several-page Sage program that uses your
> implementation of X (plus many other things in Sage) to compute Y (say
> p-adic Regulators of Jacobians of genus 2 curves).      Would you
> definitely be allowed to use their new code and include it in Sage?

Suppose you spend three years writing a proof of X (say, some very
important result about high rank elliptic curves), which you publish
as a paper under cc-by-sa in some journal. Then somebody else writes
and publishes a very clever paper that includes a several-page
mathematical proof which uses your implementation of the proof of X
(i.e. statement of lemmas, propositions, etc. leading to X which
appear in your paper), to prove the BSD conjecture. Would you
definitely be allowed to republish their new proof and include it in
(say) wikipedia?

If this were true, some obstinate mathematicians could be releasing
their proofs under the GPL, thus eventually "infecting" all
mathematics... (provided they reach critical mass, say).

Wrt the "clever paper" you mention above, I can see two possibilities,
maybe depending on the interpretation of the law (the notion of
derivative work) by a court:

(a) the paper is NOT legally a derivative work of Sage. Then the
journal is clean, and you cannot claim anything about it.

(b) the paper IS legally a derivative work of Sage. Then the journal
is clean or not depending on whether they have a license to reuse
Sage. Assume for the sake of the argument that the GPL is the only
valid license Sage the editorial can obtain. The GPL is a permission
(license) to reuse Sage which is valid as long as they comply with the
terms. Then either

(b1) the journal complies with the GPL by releasing the new code as GPL
===> you would be definitely allowed to use the new code and include
it in Sage; or
(b2) the journal doesn't release the new code as GPL
===> then the journal would be infringing Sage copyright. It does
*not* follow that you are allowed to use the new code and include it
in Sage. It *only* follows that the copyright owner for Sage can sue
the editorial for copyright infringement, i.e. distributing a
derivative work without a license. (IOW, the GPL is *not* really viral
--- copyright law is).

Remember: the GPL is only a *license*. Nobody is forced to agree, and
nobody is forced to comply.
The GPL gives permission to do some things that copyright law would
not allow, provided its terms and conditions are satisfied. If I want
to do something that copyright law alone would allow me to, then I
don't need to follow the GPL. This includes fair use.

For instance: what's the difference between referencing the sage
library by using an import statement and a function call, vs.
referencing a theorem in a paper by citing it in the bibliography and
recalling the statement? They both seem fair use to me... In
principle: I guess it would be possible to write a paper which cites,
references, and recalls so much from a previous paper so that it
becomes a derivative work and fair use doesn't apply; the same is true
for scripts which reference the sage library.

IOW: I'm claiming that *some* scripts can be derivative works, but
others are either not derivatives or under fair use (this has been
already pointed out by Robert Bradshaw). I'd say *most* notebooks
making use of the sage library in the intended way, using the
documented APIs, etc, would fall into the second category, and thus
can be published under any license or no license at all.

Gonzalo

Ralf Hemmecke

unread,
May 6, 2009, 12:32:41 PM5/6/09
to sage-...@googlegroups.com
On 05/06/2009 07:50 AM, William Stein wrote:
> On Tue, May 5, 2009 at 3:25 PM, Brian Granger <elliso...@gmail.com> wrote:
>> Hi,
>>
>> I have a question about Sage and the GPL. Here is the main question..
>>
>> IF I write code in a Sage notebook, AND I redistribute the code, do I
>> need to release my code under the GPL?
>>
>> Here is a bit of background...
>>
>> At a conference in the last year, one of the Sage developers was asked
>> this question, and their answer was...
>>
>> "You can do whatever you want with your code, you don't have to
>> release it under the GPL"
>>
>> In general, I don't think this answer can be right, but I think it is
>> actually a bit subtle. Here are some of the issues that I see (all of
>> this assumes that I do want to distribute my code to others)...
>>
>> * Is the code pure python or does it use the sage syntax? If the code
>> uses the sage syntax, I think it must be released under the GPL.
>> * Does the code being written actually use any GPL libraries (like the
>> sage python package)? If the code uses GPL libraries, I again think
>> it must be GPL'd.

> Publicly distributed code using GPL'd library must be GPL'd.

Suppose Ondrej's program
-------
from sage.all import x
print x**2
-------
were a bit longer to actually contain some creativity (but no line from
any GPL source code). Suppose he puts that in a file aaa.sage and
distributes that (without sage). Why should there be any restriction on
this source? He may, of course put that under BSD (it's open source
anyway). The file itself does not "use" Sage. It's simply a string of
characters.

Only if somebody downloads Sage, downloads aaa.sage and actually runs
aaa.sage, the sage library is used. But then distribution has already
happened and there is no obligation for Ondrej to change the license of
aaa.sage from BSD to GPL.

>> * If a sage notebook is "source code" does clicking "Share" in the
>> notebook constitute "distribution". In other words, if a bunch of
>> people start sharing sage notebooks, do they all have to be GPL?

> No. This is internal distribution, so the GPL doesn't apply. This is
> no different than the NSA (say) distributing a program from one
> researcher to another, and obviously they don't have to GPL their
> code.

No. But for a different reason. The notebook is a separate piece. If you
don't distribute it together with Sage, then it's only a string of
characters (and as such not particularly useful) and I don't see a
reason why such distribution must be under GPL rules.

If, however, you choose to distribute your notebook together with Sage
then it can be considered an extension/derivative work of Sage and as
such the whole thing (=Sage+notebook) has to be GPL.

The important term is "distribution". Of course, also NSA-internal
distribution of a GPL program has to follow GPL rules.

Suppose I write a program and *distribute* it to my wife under the GPL.
If my wife chooses to *distribute* that program to my child, she can do
that, but she must follow the GPL rules. Now three people have that
program (and source code) and none of us is forced by GPL rules to
publish the source code to anybody else in the world if no further
distribution happens.

Only if you distribute the work, you must follow GPL rules.

>> The usage case I have in mind is using this to teach University
>> courses in computational physics. I know others are already doing
>> this (William is right now I think). If I share notebooks with
>> students and they with me, does everything have to be GPL?

> No, definitely not. But if you post the notebooks publicly and they make use
> of the sage library, then they have to be GPL'd.

I'd say if you distribute the notebooks alone without any GPL'ed
software, then you are free to choose any license you like.

>> This is relevant, because I need to
>> clarify these issues for students and faculty who would use Sage in
>> this manner. It isn't necessarily bad if the answer is "GPL", but we
>> all need to know this.

> You might consider consulting with a lawyer at your university.
> Universities sometimes have
> lawyers for this sort of thing.

Yes, that is always a good thing. There are, for example, certain items
of GPL2 that don't apply in certain countries.


Don't get me wrong here. I am a fan of GPL. And if everyone distributed
his software under GPL there would not be such a lot of wasted
mailing-list hours that discuss license issues.

William Stein

unread,
May 6, 2009, 12:47:56 PM5/6/09
to sage-...@googlegroups.com
[snip]

Ralf,

In this email, what are you basing all your claims on? Numerous
claims you make seem to me to contradict statements in the GPL FAQ at

http://www.gnu.org/licenses/gpl-faq.html

So I'm curious if you're basing everything on what you just tend to
wish/believe is true about the GPL based on your memory, or on
actually carefully reading the GPL and statements made by the FSF
lawyers to clarify their intent regarding the GPL. Generally
speaking, I think that if one wants to understand the intent of the
GPL, then

http://www.gnu.org/licenses/gpl-faq.html

is a very good place to look. Almost every question I have about
the GPL is clearly answered there. If one directly disagrees with a
statement made there, then it is easy to get a lawyer from FSF to
provide further clarification/answers.

William

Vinzent Steinberg

unread,
May 6, 2009, 12:05:44 PM5/6/09
to sage-devel
On May 6, 4:41 pm, kcrisman <kcris...@gmail.com> wrote:
> Wow, I really missed quite a thread.
>
> So is there any final consensus on this?  Is the following Sage
> program automatically GPL?
>
> {{{
> 2+2
>
> }}}
>
> Or only in the following form?
>
> {{{
> Integer(2)+Integer(2)
>
> }}}

Technically, what's the difference between a GPL'd interpreter
interpreting "2 + 2" and a call to a GPL'ed library "add(2, 2)"?

I think this is the problem with the GPL: any program you write that
uses an GPL'd interface has to be GPL'd. If you add a layer of
abstraction to your program, for instance by defining Integer to be an
user-specified type representing an integer, nothing forces you to use
the GPL for you code, even if you users use you program in conjunction
with a GPL'd implementation of Integer. The point is that your
interface has to be general enough to be clearly not derived from a
GPL'd interface/library/code.
However, circumvention of this kind are debatable. (The nvidia closed
source driver for Linux has an open source interface to the kernel, if
I recall it correctly.)

From my point of view, GPL'd libraries (and I think sage is also a
library) are practically only usable by GPL'd code. If you don't want
this, use LGPL'd libraries or similar.
The main difference of the LGPL is as far as I know that it allows you
to use an interface to the LGPL'd code without LGPL'ing your own code.


Vinzent

Tim Lahey

unread,
May 6, 2009, 1:37:15 PM5/6/09
to sage-...@googlegroups.com

On May 6, 2009, at 12:05 PM, Vinzent Steinberg wrote:

>
> On May 6, 4:41 pm, kcrisman <kcris...@gmail.com> wrote:
>> Wow, I really missed quite a thread.
>>
>> So is there any final consensus on this? Is the following Sage
>> program automatically GPL?
>>
>> {{{
>> 2+2
>>
>> }}}
>>
>> Or only in the following form?
>>
>> {{{
>> Integer(2)+Integer(2)
>>
>> }}}
>

> From my point of view, GPL'd libraries (and I think sage is also a
> library) are practically only usable by GPL'd code. If you don't want
> this, use LGPL'd libraries or similar.
> The main difference of the LGPL is as far as I know that it allows you
> to use an interface to the LGPL'd code without LGPL'ing your own code.
>

Doesn't both Maple and Mathematica make use of GMP? I thought they did.

They aren't licensed under the GPL.

Cheers,

Tim.

---
Tim Lahey
PhD Candidate, Systems Design Engineering
University of Waterloo
http://www.linkedin.com/in/timlahey

William Stein

unread,
May 6, 2009, 1:39:24 PM5/6/09
to sage-...@googlegroups.com
On Wed, May 6, 2009 at 10:37 AM, Tim Lahey <tim....@gmail.com> wrote:
>
>
> On May 6, 2009, at 12:05 PM, Vinzent Steinberg wrote:
>
>>
>> On May 6, 4:41 pm, kcrisman <kcris...@gmail.com> wrote:
>>> Wow, I really missed quite a thread.
>>>
>>> So is there any final consensus on this?  Is the following Sage
>>> program automatically GPL?
>>>
>>> {{{
>>> 2+2
>>>
>>> }}}
>>>
>>> Or only in the following form?
>>>
>>> {{{
>>> Integer(2)+Integer(2)
>>>
>>> }}}
>>
>> From my point of view, GPL'd libraries (and I think sage is also a
>> library) are practically only usable by GPL'd code. If you don't want
>> this, use LGPL'd libraries or similar.
>> The main difference of the LGPL is as far as I know that it allows you
>> to use an interface to the LGPL'd code without LGPL'ing your own code.
>>
>
> Doesn't both Maple and Mathematica make use of GMP? I thought they did.
>
> They aren't licensed under the GPL.

GMP is not GPL'd. It is LGPL'd. So any program can use/include GMP without
having to be GPL'd. Magma also includes GMP.

William

>
> Cheers,
>
> Tim.
>
> ---
> Tim Lahey
> PhD Candidate, Systems Design Engineering
> University of Waterloo
> http://www.linkedin.com/in/timlahey
>
> >
>



Robert Bradshaw

unread,
May 6, 2009, 1:44:02 PM5/6/09
to sage-...@googlegroups.com
On May 6, 2009, at 10:37 AM, Tim Lahey wrote:
>
> Doesn't both Maple and Mathematica make use of GMP? I thought they
> did.
>
> They aren't licensed under the GPL.

GMP is LGPL, not GPL. If what Ralf said were correct (which it
isn't), there would be no need for an LGPL at all.

- Robert

David Harvey

unread,
May 6, 2009, 2:01:50 PM5/6/09
to sage-devel
Totally awesome thread guys.

What about this one?

def is_prime(n):
return not any([1 * n / d == n // d for d in range(2, n)])

Works in sage, but not in python. Is it GPL?

david

Robert Bradshaw

unread,
May 6, 2009, 4:05:49 PM5/6/09
to sage-...@googlegroups.com

I think it depends on the context. Ignoring questions of
substantiveness, if you were to publish the above code as
"MyAwsomePrimeDetectingScript.sage" then it would need to be licensed
under the GPL. If, however, you had this code in a tutorial/worksheet
"Detecting Primes: a Comparison of Various Methods" than I think not
(because I wouldn't classify that as a derivative work of Sage).

Both the GMP and MPFR manuals contain code that uses GMP/MPFR in
their manuals, and I'm sure they're not the only ones. Their manuals
are licensed under the GFDL, which is incompatible with the GPL.
Perhaps the license is so restrictive that the FSF can't even abide
by it, but I take it as an indication that there is at least some
leeway here.

- Robert


Ralf Hemmecke

unread,
May 6, 2009, 4:27:37 PM5/6/09
to sage-...@googlegroups.com

Did I disagree with gpl-faq.html? Show me where?

First, I say it again. If all software were GPL, that would be
wonderful. So if people think that the GPL requires notebooks to be
further distributed under GPL that's fine with me and, in fact, I like
this viral nature of GPL.

But if it comes to Ondrej's code, I think it is ridiculous if it were
forced to be under GPL. Just suppose Ondrej had mistyped his text so
that it looked like

-------
from asge.all import x
print x**2
-------
(Note it's asge not sage.)

Who would claim that this text must be distributed under GPL?

http://www.gnu.org/licenses/gpl-faq.html#CanIUseGPLToolsForNF
http://www.gnu.org/licenses/gpl-faq.html#GPLOutput
http://www.gnu.org/licenses/gpl-faq.html#WhatCaseIsOutputGPL

>>>> * If a sage notebook is "source code" does clicking "Share" in the
>>>> notebook constitute "distribution". In other words, if a bunch of
>>>> people start sharing sage notebooks, do they all have to be GPL?
>>> No. This is internal distribution, so the GPL doesn't apply. This is
>>> no different than the NSA (say) distributing a program from one
>>> researcher to another, and obviously they don't have to GPL their
>>> code.

Ooops, I've just found
http://www.gnu.org/licenses/gpl-faq.html#InternalDistribution
However, that doesn't say that the GPL doesn't apply. Why should the GPL
not apply? The only restriction is:

... without giving the staff permission to release that
modified version to outsiders

By the GPL each individual inside the company has the right to
distribute a modified (organization internal) GPL program under the
terms of the GPL (i.e. with sources). But the GPL does not force
distribution and the organization may forbid it. So it just means that
inside the organization, every one who has the binary form of the
program must be able to get the source.

>> No. But for a different reason. The notebook is a separate piece. If you
>> don't distribute it together with Sage, then it's only a string of
>> characters (and as such not particularly useful) and I don't see a
>> reason why such distribution must be under GPL rules.
>>
>> If, however, you choose to distribute your notebook together with Sage
>> then it can be considered an extension/derivative work of Sage and as
>> such the whole thing (=Sage+notebook) has to be GPL.

http://www.gnu.org/licenses/gpl-faq.html#GPLModuleLicense

But note that this URL points to the "Sage+notebook" case. It says
nothing about releasing the notebook as a separate work.

The following does not apply, because Ondrej's program text does not
include any GPL library if it is distributed (as he did) in an email.
http://www.gnu.org/licenses/gpl-faq.html#IfLibraryIsGPL

Looks like the first paragraph of
http://www.gnu.org/licenses/gpl-faq.html#IfInterpreterIsGPL
applies *if the notebook is distributed separately* (not together with
Sage).

I've given more related links to the FAQ below.

>> The important term is "distribution". Of course, also NSA-internal
>> distribution of a GPL program has to follow GPL rules.
>>
>> Suppose I write a program and *distribute* it to my wife under the GPL.
>> If my wife chooses to *distribute* that program to my child, she can do
>> that, but she must follow the GPL rules. Now three people have that
>> program (and source code) and none of us is forced by GPL rules to
>> publish the source code to anybody else in the world if no further
>> distribution happens.
>>
>> Only if you distribute the work, you must follow GPL rules.

http://www.gnu.org/licenses/gpl-faq.html#NoDistributionRequirements
http://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic
http://www.gnu.org/licenses/gpl-faq.html#CanIDemandACopy
http://www.gnu.org/licenses/gpl-faq.html#DevelopChangesUnderNDA

>>>> The usage case I have in mind is using this to teach University
>>>> courses in computational physics. I know others are already doing
>>>> this (William is right now I think). If I share notebooks with
>>>> students and they with me, does everything have to be GPL?
>>> No, definitely not. But if you post the notebooks publicly and they make use
>>> of the sage library, then they have to be GPL'd.
>> I'd say if you distribute the notebooks alone without any GPL'ed
>> software, then you are free to choose any license you like.

I don't know much about the notebook server, but I'd argue that if
somebody puts/saves his notebook there than this notebook can be
considered as an extension of Sage and is thus distributed from a Sage
server under the GPL. However, since the copyright of the content is
still with the person who created the notebook (suppose it does not
contain material that is not otherwise copyrighted) then this person
should have the right to also distribute this notebook under any other
license.

Since IANAL, the above paragraph is just my belief. But I think it would
be a good idea to explicitly state that if someone saves a notebook on
http://www.sagenb.org/ then this notebook will automatically be
distributed from http://www.sagenb.org/ under a GPL license (with a
right of the person to distribute the notebook content under any other
license).

Ralf

dagss

unread,
May 6, 2009, 5:06:36 PM5/6/09
to sage-devel
On May 6, 10:27 pm, Ralf Hemmecke <r...@hemmecke.de> wrote:
> But if it comes to Ondrej's code, I think it is ridiculous if it were
> forced to be under GPL. Just suppose Ondrej had mistyped his text so
> that it looked like
>
> -------
> from asge.all import x
> print x**2
> -------
> (Note it's asge not sage.)
>
> Who would claim that this text must be distributed under GPL?

Another example I wonder about, in the same (contrived) spirit: It's
entirely possible to write original Sage code, in, say, an email,
without ever having retrieved a copy of Sage (e.g. by simply reading
online docs); and so never accepting its terms of use. How can one
possibly violate a license one never agreed to in the first place?

I guess there's two discussions going on here; one for text and one
for worksheets...though I find it hard to seperate the two.

I know, IANAL...

Dag Sverre

Ralf Hemmecke

unread,
May 6, 2009, 6:57:38 PM5/6/09
to sage-...@googlegroups.com

Could you point me exactly to the place where I am wrong?

Suppose you have a library A that is distributed under license L.
If you write a program B that uses the library A *and* you create a
binary and distribute the binary for B then that contains A (I don't
care whether that is static or dynamic linking).

Let's agree that B without the library A is the extension E (which is
purely new code).

If you distribute B=A+E and want to keep the sources for E private then
you cannot do this if L=GPL, but you can if L=LGPL.

This settles the need for LGPL.

However, I did not describe this case. Even if L=GPL, you can distribute
a form of E in a non-source form (which is probably useless without A)
under any license you like. You might have produced that form of E
without even having any GPL software on your computer. So why would
somebody have the right to force you to distribute E under GPL? What if
A was formerly under BSD and then changed to GPL? Would that mean you
suddenly can no longer distribute E under a closed license. Why? If you
don't distribute A you don't distribute GPL code and thus have no
obligation.

Now if a person P takes your E and also gets A and in some way produces
a binary B, then P has no right to distribute B if L=GPL, since this
would require him to distribute B under GPL as well, but without the
sources for E this is clearly impossible. But of course, it is no
problem to use B for private things.

Now think of A as being Sage and E as being a notebook.

Ralf

Ivan Andrus

unread,
May 6, 2009, 8:43:16 PM5/6/09
to sage-...@googlegroups.com
On May 6, 2009, at 12:09 AM, mabshoff wrote:

> Note that any GPLed codebase like Singular or pari would also be viral
> to high level code and I cannot believe that this is the way the GPL
> is intended. Anything using readline, i.e. IPython, would be infected,
> too, and that goes way too far IMHO (You can obviously use libedit or
> no readline at all to work around this).

I could very well be wrong, but according to RMS anything using
readline *is* infected:
http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/Why-CLISP-is-under-GPL

I would be interested in knowing why this is _not_ the case, i.e. what
caused clisp to have problems but not IPython.

Not a big fan of the GPL,
Ivan

mabshoff

unread,
May 6, 2009, 9:54:10 PM5/6/09
to sage-devel


On May 6, 5:43 pm, Ivan Andrus <g...@macmail.com> wrote:
> On May 6, 2009, at 12:09 AM, mabshoff wrote:
>
> > Note that any GPLed codebase like Singular or pari would also be viral
> > to high level code and I cannot believe that this is the way the GPL
> > is intended. Anything using readline, i.e. IPython, would be infected,
> > too, and that goes way too far IMHO (You can obviously use libedit or
> > no readline at all to work around this).
>
> I could very well be wrong, but according to RMS anything using  
> readline *is* infected:http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/Why-CLISP...

Yes, that is universally agreed upon. The issue is what is a derived
work when GPLed interpreter uses extension modules that are GPL due do
linking against GPLed libraries.

I find it strange that code written on top of a GPLed interpreter is
fine, but if you write a GPLed interpreter that loads GPLed extensions
according the the FSF that code written on top of the interpreter is
subject to the GPL (IANAL, this is how I read the FSF's position).

> I would be interested in knowing why this is _not_ the case, i.e. what  
> caused clisp to have problems but not IPython.

IPython is licensed under the new BSD license, so it is GPL
compatible.

> Not a big fan of the GPL,

Well, that is a whole other thread if it gets started, but it should
be on sage-flame :)

> Ivan

Cheers,

Michael

Ronan Paixão

unread,
May 6, 2009, 11:42:06 PM5/6/09
to sage-...@googlegroups.com
Em Qua, 2009-05-06 às 00:29 -0700, William Stein escreveu:
> On Tue, May 5, 2009 at 11:57 PM, Robert Bradshaw
> <robe...@math.washington.edu> wrote:
> > What about
> > publishing (collections of) worksheets under the CC license? Code
> > snippets in books? Are your books GPL compatible? (Maybe you could
> > claim fair use.)
> >
> > I have no trouble licensing code under the GPL, but I do think this
> > places an onerous and inappropriate burden on all *users* of Sage,
> > and the GPL is supposed to be about modifying/distributing code.
>

including yourself.

Here's something that may really upset you (specially since earlier you
asked about which developers could be infringing the GPL, if one thinks
about the most restrictive interpretation).

You wrote a book last year. It does include code that should be executed
in Sage. However, you haven't released the book under the GPL and
instead signed with a publisher to distribute your book. OK, you did
take some measures to ensure the book will be freely available to the
public after some time, however the GPL does not include text to deal
with that. So, if you really want to take the strict interpretation, you
should make available your book right now, which would of course break
your contract with your publisher. So, what could you do now? Could
other developers sue you to make you release your book under the GPL? If
other people published books which included Sage example code, could you
sue them to release their books under the GPL?

Now, if one mathematician happens to solve one of the Millenium Prize
Problems ( http://en.wikipedia.org/wiki/Millennium_Prize_Problems ) in
Sage. Would his proof be GPL? Would other proofs that depend on that
also be GPL? What about the result itself? I guess this would pretty
much restrict much of Mathematics itself, contrary to the "spirit of
mathematics".

Just my 2 cents with a truckload of salt.

Ronan

PS: Just to mention, if I had to choose I would release my libraries as
LGPL, which would avoid much of the problems of both sides, or use some
sort of dual-licensing, or even just not release them, but that's too
extreme.


Franco Saliola

unread,
May 7, 2009, 2:57:51 AM5/7/09
to sage-...@googlegroups.com
On Wed, May 6, 2009 at 4:05 AM, Brian Granger <elliso...@gmail.com> wrote:
>
> Brian,
>
>> A sage worksheet is no more a derived work of Sage than a jpeg would
>> be a derived work of Photoshop/GIMP or a .doc file would be a derived
>> work of MS Office or OpenOffice.
>
> I disagree.  A jpeg or .doc file is not source code in any sense of
> the word, thus the GPL is completely irrelevant (I think we agree on
> that).

Would you say the same of bitmaps?

"Piet is an esoteric programming language designed by David
Morgan-Mar, whose programs are bitmaps that look like abstract art.
Piet was named after the Dutch painter Piet Mondriaan."

From: http://en.wikipedia.org/wiki/Piet_(programming_language)

:-)

--

Robert Dodier

unread,
May 7, 2009, 12:39:43 PM5/7/09
to sage-devel
On May 5, 8:05 pm, Brian Granger <ellisonbg....@gmail.com> wrote:

> > A sage worksheet is no more a derived work of Sage than a jpeg would
> > be a derived work of Photoshop/GIMP or a .doc file would be a derived
> > work of MS Office or OpenOffice.
>
> I disagree. A jpeg or .doc file is not source code in any sense of
> the word, thus the GPL is completely irrelevant (I think we agree on
> that).

That simply isn't so. To quote the GPL:
"This License applies to any program or other work ..."
"The "Program", below, refers to any such program or work, ..."

FWIW

Robert Dodier

Tom Boothby

unread,
May 7, 2009, 2:52:00 PM5/7/09
to sage-...@googlegroups.com
I just found this thread, sorry for weighing in late.

Note: this is a light-hearted response to a topic which I consider
very grave. It's been claimed that the script

from sage import Integer
print Integer(2)+Integer(2)

must be GPL'd. I claim that the above is a sage-ultralight script.
I've attached an independent implementation of sage-ultralight that
has been released under the SACL (Smart Guy Common License).
Unfortunately, the SACL is also a virulent license, so sage-ultralight
is GPL-incompatible. Therefore, nobody can redistribute the above code
without fear of retribution from me, or the FSF. (evil laughter?)

On a more serious note, I do not believe that a Sage script is
automatically GPL'd -- and I believe that the FSF agrees. From the
FAQ

"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."

I believe that Sage constitutes an interpreter in the case of the
above script. Furthermore, I claim that the CLI (Ipython), the
notebook, and the interpreter are no different in this regard. Users
of Sage are free to distribute their input to Sage, and the output
that they receive from Sage in any manner that they please, as long as
their input, or the output do not contain derived work*.

"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 key portion of this is that *the interpreted program* must be
released in a GPL-compatible way. A Sage script is nothing but input
-- it does not link to Sage, it does not depend on Sage to run, as I
demonstrated above. If a person downloads a Sage script, for the most
part, they'll have to install a copy of Sage -- that script can have
whatever license its author wants. As demonstrated above, one can
write Python code which emulates Sage to a degree that any particular
script could be run in Python without an install of Sage. (note, one
may freely use the preprocessor to convert Sage code into Python code,
and this should not restrict the user's freedom)

Compare this to Cython code -- it is possible to release a Cython
script as source under the SACL, which dynamically links to GPL'd Sage
code. That source is freely distributable, but binary releases may
not be made under the terms of either license.

YMMV, IANAL, IANAD, etc.

* If you make a derived class, for example, which contains code from
the original class, that's a no-no -- or similarly, if your session
involves introspection.

Franco: thanks for sharing Piet -- that's awesome.

sage.py

Brian Granger

unread,
May 7, 2009, 4:20:05 PM5/7/09
to sage-...@googlegroups.com
> Note: this is a light-hearted response to a topic which I consider
> very grave.  It's been claimed that the script
>
> from sage import Integer
> print Integer(2)+Integer(2)
>
> must be GPL'd.   I claim that the above is a sage-ultralight script.
> I've attached an independent implementation of sage-ultralight that
> has been released under the SACL (Smart Guy Common License).
> Unfortunately, the SACL is also a virulent license, so sage-ultralight
> is GPL-incompatible. Therefore, nobody can redistribute the above code
> without fear of retribution from me, or the FSF. (evil laughter?)

He, he. For the above script to run in sage-ultralight,
sage-ultralight must have the same name as sage. Then you get into
copyright/trademark related issues (the name "sage" is already taken).
Just the same I could create a GUI toolkit named "Qt" that was also
released under the SACL license, but you can guess what would happen.

Maybe someday a court will clarify what exactly the GPL means...I just
hope they don't find that the air we breath is a derived work of some
GPL licensed entity. Then, if we breath such air, we would all have
to be GPLd :-)

Cheers,

Brian

William Stein

unread,
May 7, 2009, 4:23:59 PM5/7/09
to sage-...@googlegroups.com

That FAQ entry which you partially quoted concludes with "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."

Changing "Perl and Java" to "Python" and changing "GPL'd Python
modules" to "the Sage library", this reads:

"A consequence is that if you choose to use the
Sage library in your Python program, you must
release the program in a GPL-compatible way..."

Brian Granger

unread,
May 7, 2009, 4:41:44 PM5/7/09
to sage-...@googlegroups.com
>> I disagree.  A jpeg or .doc file is not source code in any sense of
>> the word, thus the GPL is completely irrelevant (I think we agree on
>> that).
>
> That simply isn't so. To quote the GPL:
> "This License applies to any program or other work ..."
> "The "Program", below, refers to any such program or work, ..."

Are you arguing that jpeg's produced by GIMP are all GPL'd?

I agree that it is definitely possible to release "non-programs", such
as JPEGs, under the GPL. But, in the case of GIMP producing a JPEG,
most of us don't consider the JPEG a derived work of GIMP. Why not?

* The JPEG stands on its own and can be "used" independently of GIMP.
* The part of GIMP that is licensed under the GPL is its source code.
I am not sure, but I think it is C++. Derived works of GIMP must
therefore also be C++ programs or a program in another language that
is able of directly linking to and calling C++.

Sure someone brought up the issue of the odd language for which
bitmaps are source code. In that case, a bitmap can absolutely be a
derived work. But, it doesn't follow that all bitmaps are derived
work of all programming languages.

Cheers,

Brian

Alfredo Portes

unread,
May 7, 2009, 4:54:06 PM5/7/09
to sage-...@googlegroups.com
On Thu, May 7, 2009 at 4:23 PM, William Stein <wst...@gmail.com> wrote:

> That FAQ entry which you partially quoted concludes with "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."

Unless the module used has a classpath exception right? Like Java does.

http://en.wikipedia.org/wiki/GPL_linking_exception

Couldn't Sage include something like this? and can somebody with a Law degree
and not a Math degree comment here :). It has been a fun thread.

William Stein

unread,
May 7, 2009, 4:57:02 PM5/7/09
to sage-...@googlegroups.com
On Thu, May 7, 2009 at 1:54 PM, Alfredo Portes <doyen...@gmail.com> wrote:
>
> On Thu, May 7, 2009 at 4:23 PM, William Stein <wst...@gmail.com> wrote:
>
>> That FAQ entry which you partially quoted concludes with "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."
>
> Unless the module used has a classpath exception right? Like Java does.
>
> http://en.wikipedia.org/wiki/GPL_linking_exception
>
> Couldn't Sage include something like this?

No, because Sage derives from many other GPL'd programs, and those
would *all* have to make the classpath exception as well.

William

John Cremona

unread,
May 7, 2009, 5:20:36 PM5/7/09
to sage-...@googlegroups.com
2009/5/7 Brian Granger <elliso...@gmail.com>:
This reminds me of the case of the (large) prime number which in
binary was a fully functioning linux progam which played DVDs,
complete with CSS decoding. As it was a large enough prime it was
posted on the large primes web page.

Perhaps that prime now has to be GPL'd...

John

>
> Cheers,
>
> Brian
>
> >
>

Tom Boothby

unread,
May 7, 2009, 5:34:56 PM5/7/09
to sage-...@googlegroups.com
On Thu, May 7, 2009 at 1:20 PM, Brian Granger <elliso...@gmail.com> wrote:

> He, he.  For the above script to run in sage-ultralight,
> sage-ultralight must have the same name as sage.  Then you get into
> copyright/trademark related issues (the name "sage" is already taken).
>  Just the same I could create a GUI toolkit named "Qt" that was also
> released under the SACL license, but you can guess what would happen.

Incorrect. Python doesn't care what you call your program, it only
cares about the filename. If somebody wants to go to court about a
filename... that'll certainly be interesting.

Brian Granger

unread,
May 7, 2009, 6:09:46 PM5/7/09
to sage-...@googlegroups.com
>> sage-ultralight must have the same name as sage.  Then you get into
>> copyright/trademark related issues (the name "sage" is already taken).
>>  Just the same I could create a GUI toolkit named "Qt" that was also
>> released under the SACL license, but you can guess what would happen.
>
> Incorrect.  Python doesn't care what you call your program, it only
> cares about the filename.

Huh? Your example had two files or modules:

foo.py
====

from sage import Integer
print Integer(2)+Integer(2)

sage.py
======

# Your ultralight-sage implementation with...
# Whatever your implementation of Integer was

Python doesn't care about the name "foo.py." But Python does care
that about the name "sage", otherwise the import of sage in foo.py
won't work. To get "from sage import Integer" to work, you *have to*
name sage.py,....well, sage.py. But as I recall there is already a
"sage" python project somewhere ;-). I think the authors of the real
sage project might have a problem with you naming your ultralight sage
module "sage.py." Just like Fernando and myself would have a problem
if another "IPython" named project came along.

> If somebody wants to go to court about a
> filename... that'll certainly be interesting.

This is called trademark infringement, and it happens all the time.
Remember Apple v. Apple?

http://en.wikipedia.org/wiki/Apple_Corps_v._Apple_Computer

Cheers,

Brian


> >
>

Gonzalo Tornaria

unread,
May 7, 2009, 6:40:23 PM5/7/09
to sage-...@googlegroups.com
On Thu, May 7, 2009 at 5:41 PM, Brian Granger <elliso...@gmail.com> wrote:
> * The JPEG stands on its own and can be "used" independently of GIMP.

Beware... copyright law is more about "copying" and "distribution",
than about "use". Besides, when I post a notebook, or publish a sage
script in a book, I'm not using Sage, anyways... Moreover, when I read
the script (e.g. reading the book for learning or fun), I am "using"
the script independently of Sage.

> * The part of GIMP that is licensed under the GPL is its source code.
> I am not sure, but I think it is C++. Derived works of GIMP must
> therefore also be C++ programs or a program in another language that
> is able of directly linking to and calling C++.

Auch... then, if I take GIMP source code, and carefully translate it
100% into, say... lisp, then the resulting work is not a C++ program,
and therefore not a derived work. BTW this is a braindead
implementation of lisp which cannot directly link to and call C++ (in
case it matters).

----

By the way, a technical point which may not be that relevant but which
causes some confusion:

Say I take source code from your GPLed program, and use it in my own
code (no doubt a derived work). Then I distribute my program without a
license, or with a GPL-incompatible license. Does it follow that my
program is GPL?

I think NOT. It only follows that I may be infringing your copyright,
because you never gave me permission to do that. You would need to sue
me, and then I could "get away" by just removing your code from my
program and paying you damages for all the distribution that I did so
far without your authorization. I wouldn't be forced to GPL my code in
any case.

Gonzalo

Gonzalo Tornaria

unread,
May 7, 2009, 6:51:38 PM5/7/09
to sage-...@googlegroups.com
Gee... is "Sage" a trademark?

Besides, I don't think a trademark is that strong... E.g. "firefox" is
a trademark of mozilla. Debian doesn't want to be bound by the terms
of use of said trademark, so the rename the program to "iceweasel".
All visible occurrences of the name "firefox" are replaced by
"iceweasel". However, I can still launch iceweasel by running
"firefox" from the command line. Is this a trademark violation?

Now, if "Sage" where a trademark, then "sage-ultralight" would clearly
be a trademark violation. But say the program is called "fuchsia"
instead. Fuchsia is a clone of Sage, and it is meant to execute the
same scripts as Sage itself. Then it's not clear that it would be a
trademark violation for fuchsia to provide a "sage.py" file for
compatibility purposes, i.e. just so that "import foo from sage.bar"
works the same.

IOW, you cannot create a GUI toolkit named "Qt", but you may be able
create a GUI toolkit with a different name and provide header files
using the same filenames as qt (at least wrt trademark... then there
is arguing about whether interfaces are copyrightable or not...)

Best,
Gonzalo

root

unread,
May 7, 2009, 5:20:29 PM5/7/09
to sage-...@googlegroups.com, sage-...@googlegroups.com
> Gee... is "Sage" a trademark?
>
> Besides, I don't think a trademark is that strong... E.g. "firefox" is
> a trademark of mozilla. Debian doesn't want to be bound by the terms
> of use of said trademark, so the rename the program to "iceweasel".
> All visible occurrences of the name "firefox" are replaced by
> "iceweasel". However, I can still launch iceweasel by running
> "firefox" from the command line. Is this a trademark violation?
>
> Now, if "Sage" where a trademark, then "sage-ultralight" would clearly
> be a trademark violation. But say the program is called "fuchsia"
> instead. Fuchsia is a clone of Sage, and it is meant to execute the
> same scripts as Sage itself. Then it's not clear that it would be a
> trademark violation for fuchsia to provide a "sage.py" file for
> compatibility purposes, i.e. just so that "import foo from sage.bar"
> works the same.
>
> IOW, you cannot create a GUI toolkit named "Qt", but you may be able
> create a GUI toolkit with a different name and provide header files
> using the same filenames as qt (at least wrt trademark... then there
> is arguing about whether interfaces are copyrightable or not...)

Trademark violations occur if the use of the mark causes confusion.
If someone copied Sage (e.g. a fork) and called it fushsia it would
not cause confusion. If starting fushsia was done by typing "sage"
or, when fushsia starts it "announces" itself as "sage" then there
is clearly a claim of "confusion". Thus, to avoid confusion the
fushsia project should change all references to "sage" to read
"fushsia", including the launching script.

The GPL says nothing about trademarks, as far as I'm aware.
It is based on copyright, a whole different area of law.

Tim Daly

William Stein

unread,
May 7, 2009, 7:40:03 PM5/7/09
to sage-...@googlegroups.com
On Thu, May 7, 2009 at 3:51 PM, Gonzalo Tornaria
<torn...@math.utexas.edu> wrote:
>
> Gee... is "Sage" a trademark?

Yes, "Sage" is a trademark. It's not mine though. It is explicitly
listed here:

http://www.sagenorthamerica.com/copyright_trademarks/

Another company changed their name to Sage software and write on their
webpage: "

* Why change your name at this time?

* It was always the company’s intention to use the Sage brand name
worldwide; however, the Sage trademark was not available to us in
North America until recently.
"

See http://sagefaq.sagesoftwareinc.com/

William

Robert Dodier

unread,
May 7, 2009, 9:29:14 PM5/7/09
to sage-devel
Brian Granger wrote:

> Are you arguing that jpeg's produced by GIMP are all GPL'd?

No.

> I agree that it is definitely possible to release "non-programs", such
> as JPEGs, under the GPL.

OK, I misunderstood. I thought you were claiming just the opposite.

Robert Dodier

Robert Dodier

unread,
May 7, 2009, 9:45:25 PM5/7/09
to sage-devel
Gonzalo Tornaria wrote:

> Auch... then, if I take GIMP source code, and carefully translate it
> 100% into, say... lisp, then the resulting work is not a C++ program,
> and therefore not a derived work.

Careful. I'm pretty sure a translation (be it from natural
language or computer language) is a derived work.

IANAL,

Robert Dodier

Gonzalo Tornaria

unread,
May 7, 2009, 9:55:51 PM5/7/09
to sage-...@googlegroups.com

Indeed... but the OP claimed that a jpeg couldn't be a derived work of
gimp because it's not a C++ program, which is a non sequitur.

> IANAL,

me neither...

Gonzalo

Brian Granger

unread,
May 7, 2009, 11:19:02 PM5/7/09
to sage-...@googlegroups.com
> Indeed... but the OP claimed that a jpeg couldn't be a derived work of
> gimp because it's not a C++ program, which is a non sequitur.

Do you actually think a JPEG is a derived for of GIMP or do you
disagree with how I was arguing? If you merely disagree with my
argument, please don't misquote a small portion of it out of context
and use fancy latin words to make yourself sound smart. English words
work just fine.

Most of all, everyone, please go read the damn GPL!

Cheers,

Brian

kcrisman

unread,
May 7, 2009, 11:53:32 PM5/7/09
to sage-devel
>
> Most of all, everyone, please go read the damn GPL!

Out of curiosity, does anyone on the list actually know a lawyer at
FSF? I wouldn't be surprised if someone does with all the Boston
connections.

If so, getting even a small piece of FSF's "official" position,
without all the IANAL stuff, on whether (say) a notebook worksheet
containing small programs without "import" statements or whatever
would be a derived work or not might be actually useful in the long
run, not even sage-flame bait. At this point it really seems like the
whole thread is about what a "derived" work that "links" is, and these
are not necessarily well-defined terms, at least judging by this
thread's length :)

Just putting it out there,
- kcrisman

Robert Bradshaw

unread,
May 8, 2009, 12:15:39 AM5/8/09
to sage-...@googlegroups.com
On May 7, 2009, at 8:53 PM, kcrisman wrote:

>
>>
>> Most of all, everyone, please go read the damn GPL!
>
> Out of curiosity, does anyone on the list actually know a lawyer at
> FSF? I wouldn't be surprised if someone does with all the Boston
> connections.

I think (hope) that the restrictions and freedoms the GPL puts on a
derivative work are understood by most people here. What is under
debate is what, exactly, constitutes a "derivative work." This is out
of the jurisdiction of the GPL or any other license to define--it is
part of copyright law.

I don't think anyone here honestly thinks that a photo edited by GIMP
falls under this criteria, or that porting a program from one
language to another doesn't--these are hyperboles made by people on
the list to make a point (often with a heavy dose of sarcasm).

> If so, getting even a small piece of FSF's "official" position,
> without all the IANAL stuff, on whether (say) a notebook worksheet
> containing small programs without "import" statements or whatever
> would be a derived work or not might be actually useful in the long
> run, not even sage-flame bait. At this point it really seems like the
> whole thread is about what a "derived" work that "links" is, and these
> are not necessarily well-defined terms, at least judging by this
> thread's length :)

One could ask the FSF, but one shouldn't expect an unbiased opinion
(or variance from their FAQ) if one does. (They are lawyers though,
unlike most (all?) of the folks that hang out here).

- Robert

William Stein

unread,
May 8, 2009, 12:42:36 AM5/8/09
to sage-...@googlegroups.com
On Thu, May 7, 2009 at 8:19 PM, Brian Granger <elliso...@gmail.com> wrote:
>
>> Indeed... but the OP claimed that a jpeg couldn't be a derived work of
>> gimp because it's not a C++ program, which is a non sequitur.
>
> Do you actually think a JPEG is a derived for of GIMP or do you
> disagree with how I was arguing?
[...]

> Most of all, everyone, please go read the damn GPL!
>
> Brian

Though very interesting to me personally, this thread has got to a
point that is really inappropriate for sage-devel, which is a mailing
list is for the discussion of Sage development. I respectfully
request everybody to post further discussion of this topic at the
following mailing list:

http://groups.google.com/group/sage-flame

where any and all manner of discussion can and should take place.

Thank you,

William

Harald Schilly

unread,
May 8, 2009, 5:41:37 AM5/8/09
to sage-devel
On May 6, 10:05 pm, Robert Bradshaw <rober...@math.washington.edu>
wrote:

> I think it depends on the context....

Yeahr, I think so too, and that's the reason why i think we will never
get an answer based on technical facts and we could discuss forever on
this subject. The jurisdictional system isn't only based on technical
descriptions, but also on the question which intentions are behind a
deed and other considerations. Think about this: Somebody sticks a
knife into someone else. What is this? It could be an accident,
surgery or homicide. You have to collect facts and argue around to
clear the situation. Additionally, judging a person for homicide
doesn't imply that every such knife-sticking action is homicide.
I think the same is true here. If you are building a program (as your
primary intention) which is based on Sage you have to follow the rules
of the gpl. If you intend to use Sage, not. Especially, because the
user-guide explains how to use Sage this way. Also, I don't think
distributing examples of code showing how to use Sage (teaching
situation) could be a problem. The complication is, that technically
the things are the same, but practically not. It's not a "left brain"
only question ;)
Therefore, I think we will never get a conclusive answer and also a
lawyer doesn't help, since lawyers say what they are paid for by their
clients. Each case has to be considered separately, brought to trial
if necessary, etc...

h

Ondrej Certik

unread,
May 8, 2009, 9:25:48 AM5/8/09
to sage-...@googlegroups.com

Ok, I just replied to Robert's email there. When you get to it, please
unmoderate me, so that other's can join the discussion on sage-flame.

Ondrej

William Stein

unread,
May 8, 2009, 10:58:05 AM5/8/09
to sage-...@googlegroups.com

I've just set the sage-flame list to be completely unmoderated, which
seems appropriate for sage-flame.

Thanks for posting there and getting the discussion moved. Again, I
encourage everybody interested in this topic, to post to sage-flame
and/or view the discussion online at the URL:
http://groups.google.com/group/sage-flame

-- William

Ondrej Certik

unread,
May 8, 2009, 11:21:47 AM5/8/09
to sage-...@googlegroups.com
On Fri, May 8, 2009 at 7:58 AM, William Stein <wst...@gmail.com> wrote:
>
> On Fri, May 8, 2009 at 6:25 AM, Ondrej Certik <ond...@certik.cz> wrote:
>>
>> On Thu, May 7, 2009 at 9:42 PM, William Stein <wst...@gmail.com> wrote:
>>>
>>> On Thu, May 7, 2009 at 8:19 PM, Brian Granger <elliso...@gmail.com> wrote:
>>>> Most of all, everyone, please go read the damn GPL!
>>>>
>>>> Brian
>>>
>>> Though very interesting to me personally, this thread has got to a
>>> point that is really inappropriate for sage-devel, which is a mailing
>>> list is for the discussion of Sage development.  I respectfully
>>> request everybody to post further discussion of this topic at the
>>> following mailing list:
>>>
>>>           http://groups.google.com/group/sage-flame
>>>
>>> where any and all manner of discussion can and should take place.
>>
>> Ok, I just replied to Robert's email there. When you get to it, please
>> unmoderate me, so that other's can join the discussion on sage-flame.
>
> I've just set the sage-flame list to be completely unmoderated,  which
> seems appropriate for sage-flame.

I hope it will not be spammed. If the sympy list was not moderated,
it'd be full of spam already.

>
> Thanks for posting there and getting the discussion moved.  Again, I
> encourage everybody interested in this topic, to post to sage-flame
> and/or view the discussion online at the URL:
> http://groups.google.com/group/sage-flame

Yes, I encourage that too. A conclusion of all this debate is still
missing, it'd be nice to have that, so let's continue on sage-flame.

Ondrej

William Stein

unread,
May 8, 2009, 11:33:43 AM5/8/09
to sage-...@googlegroups.com
>> I've just set the sage-flame list to be completely unmoderated,  which
>> seems appropriate for sage-flame.
>
> I hope it will not be spammed. If the sympy list was not moderated,
> it'd be full of spam already.

Good point. That usually only happens after a list has been around
a while and has a lot of members. So I can switch it back to moderation
in a couple weeks, but keep everybody who signs up now unmoderated
when I make the switch.

William

John Cremona

unread,
May 8, 2009, 12:15:48 PM5/8/09
to sage-...@googlegroups.com
2009/5/8 William Stein <wst...@gmail.com>:
I had rather assumed that the new list was never intended to be read
by anyone anyway....

John

>
> William
>
> >
>

Ondrej Certik

unread,
May 8, 2009, 12:54:30 PM5/8/09
to sage-...@googlegroups.com

Not sure what you mean. I thought William has asked to move the
discussion there, but I hope he didn't mean that noone will every read
it or participate in it.

Ondrej

Jaap Spies

unread,
May 8, 2009, 1:06:26 PM5/8/09
to sage-...@googlegroups.com
This is what we call humour :) I can explain off list if you wish.

Moreover there is a grain of truth in it.

Cheers,

Jaap


> Ondrej
>
> >
>

Ondrej Certik

unread,
May 8, 2009, 1:19:59 PM5/8/09
to sage-...@googlegroups.com

Oops. :) I didn't get it. Sorry about that. :)

Ondrej

John Cremona

unread,
May 8, 2009, 3:04:03 PM5/8/09
to sage-...@googlegroups.com
2009/5/8 Ondrej Certik <ond...@certik.cz>:
It must be the way I tell them!

John

>
> Ondrej
>
> >
>

Jaap Spies

unread,
May 8, 2009, 3:25:21 PM5/8/09
to sage-...@googlegroups.com
Never mind. You are British :)! I think it's cool anyway.

Jaap



> John
>
>> Ondrej
>>
>
> >
>

Gonzalo Tornaria

unread,
May 8, 2009, 11:38:57 PM5/8/09
to sage-...@googlegroups.com
On Fri, May 8, 2009 at 12:19 AM, Brian Granger <elliso...@gmail.com> wrote:
>
>> Indeed... but the OP claimed that a jpeg couldn't be a derived work of
>> gimp because it's not a C++ program, which is a non sequitur.
>
> Do you actually think a JPEG is a derived for of GIMP or do you
> disagree with how I was arguing?  If you merely disagree with my
> argument, please don't misquote a small portion of it out of context
> and use fancy latin words to make yourself sound smart.  English words
> work just fine.

I apologize for the way I presented this. No offense was intended for
anybody. I won't follow up in sage-flame, because it was never my
intention to start a flame (I don't think this discussion has turned
into a flame yet, neither by me or others, but I can see it has the
potential to become one). I think licensing issues, although painful,
are quite important and don't qualify as flames.

BTW, I use latin words not to sound fancy, but because I think they
may convey a message I want to share. Note that as english is not my
native language, I've got some handicap wrt finding the correct
english words for some things I want to say. You may want to factor
that in when reading my posts (I mean, when I actually use english).
OTOH, there are many latin expressions which are very commonly used in
english (more commonly than in spanish, I'd say).

I hope that this will be, as per William's request, my last post in this thread.

Best,
Gonzalo

It is loading more messages.
0 new messages