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
> 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
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
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.
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
>> 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
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
> 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
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
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
Yes, but there is also the issue of header files, which also create a
derived work. To avoid being a derived work, your code also couldn't
use any header files that come with GCC (stdio.h, math.h, etc.)
> And note that this applies just to the binary; in general, when you
> compile source code against a library, it is considered that you
> produce a derivative work in so far you use (a) header files (b)
> linking data from the libraries. But it's not clear to me that the
> original *source code* can be considered a derivative in any way...
>
> In the case of sage/python code, there's no compilation... it doesn't
> look like writing a python/sage script would constitute a derivative
> work of python or sage, so far as you don't distribute *.pyc files...
> I guess somebody could argue that using "import" statements, or
> published APIs can be considered "derivative work" as linking is, but
> it sounds strange...
The logic end of this argument is that the GPL is meaningless for
interpreted languages. But clearly, that is not the case. Sage does
have compiled extension modules that get loaded dynamically when you
run a python script that imports Sage. Thus, by the FSF
interpretation, the simple Sage script is a derived work of Sage.
Obviously everyone understands this differently. But I thought that if
I have a script A:
-------
from sage.all import x
print x**2
-------
Then my script has to be GPL, because it is dynamically loading a GPL
library (without any runtime exception) *and* my script doesn't work
without Sage.
If I however write a script B:
-------
sage_present = True
if sage_present:
from sage.all import x
print x**2
else:
from sympy.abc import x
print x**2
------
Then my script doesn't have to be GPL, because it also runs when Sage
is not present (and sympy is BSD).
Am I right or wrong?
Ondrej
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
In the canonical interpretation of the GPL, you are right.
Brian
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).
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... :-)
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
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
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
> 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
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
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
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
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
> But, then some (or even many) Sage
> users and devs are in violation of the GPL.
Really? Who?
William
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
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
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
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
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.
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
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
> 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
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
> 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.
>
> 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
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
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
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
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
> 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
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.
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)
:-)
--
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.
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
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..."
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
> 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.
No, because Sage derives from many other GPL'd programs, and those
would *all* have to make the classpath exception as well.
William
> 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.
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
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
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
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
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
>
>>
>> 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
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
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
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
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
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
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
Oops. :) I didn't get it. Sorry about that. :)
Ondrej
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