On 9/23/07, Bill Hart <[EMAIL PROTECTED]> wrote:
> I don't think these issues are simple.
>
> Interestingly, Magma will not be able to use GMP under LGPLv3 as a
> statically linked library, since as a combined work it must satisfy
> section 4d of the LGPLv3, which excludes distributing a binary already
> linked statically with GMP, since you are supposed to provide the user
> with the option of upgrading the library which Magma makes use of,
> i.e. provide a drop in replacement.

This is interesting.  However all it means in practice is that Magma
will switch to
distributing a version that is dynamically linked against GMP, which
is something
they claim to already be able to do on request.  So they will continue to use
new versions of GMP, with only a very mild inconvenience.

> But, according to that page with the matrix that William linked to at
> the start of the thread, ""Use a library" means that you're not
> copying any source directly, but instead interacting with it through
> linking, importing, or other typical mechanisms that bind the sources
> together when you compile or run the code."
>
> But SAGE is not currently designed to just link against GMP at compile
> *or* runtime. Rather the source code for GMP is actually included in
> SAGE, and in fact in modified form (by adding Pierrick and Jason's
> patches), and at runtime the SAGE binary actually includes GMP.
> But the problem with this is that to do this with an LGPLv3'd GMP,
> SAGE has to convert GMP to a GPLv3 license (permissible under the
> terms of the LGPL) *and* upgrade SAGE to GPLv3!!


Let's be careful here to distinguish the Sage distribution as a whole from
the hundreds of thousands of lines of new Python / Cython / C code that
we have written.   I'll call the latter "the Sage Python library" and the
former "the Sage distribution".     If we change licenses, we should relicense
the Sage Python library under "v2 or later"; the Sage distribution itself
would then be forced to be licensed under "v3" as you mention above.
This means that:
    (1) somebody could still use the Sage library in a GPL v2 only project,
by building against an older version of GMP and GSL.
    (2) people could not use Sage as we distribute it in a project that isn't
licensed GPL * or later.

> Regarding GMP, there are about to be lots of additions to it and, over
> the next couple of years, much of it will see a rewrite. FLINT will

I thought that was going to happen in 2005, then 2006, then 2007?
Who is actually doing this massive rewrite, addition, etc.?

> make use of the new versions of GMP, undoubtedly. I don't see that we
> have an option. For FLINT itself, this is not an issue. We simply put
> "GPLv2 or (at your option) GPLv3" on our code, since we do not include
> GMP in FLINT, but only link against it. Admittedly we'd like to
> statically link against it, but this seems to be precluded. But for
> SAGE the GMP thing is much more of a problem.

I think it is the same amount of problem for the *SAGE library*, which is most
of what we've written.

> So according to my reading SAGE has two options in the long run:
>
> 1) Switch to GPLv3, ensure all code we distribute as part of SAGE is
> "GPLv2 or later" or released under a GPLv3 compatible license. Keep
> GMP as part of SAGE.

> This option seems to be best from the perspective
> that closed source competitors like Magma cannot do this.

I don't agree with the above statement about Magma.  I'm 100% Magma can
and will switch to using any future versions of GMP.  I think the only reason
they currently distribute statically linked binaries is that (they
believe) it makes
using and installing Magma easier for users.  Switching to a dynamically linked
Magma is easy for them to do, and they will do it.

> 2) Remove GMP and Pierrick and Jason's patches from SAGE and simply
> link against whatever GMP version happens to be on the users system,
> and go to "GPLv2 or later". Under this option we could not even link
> against the latest version of GSL.

This is not an option, since it directly violates one of the 3 basic
principles of Sage:

   (1) provide a complete open source mathematical software distribution,
   (2) provide a new library,
   (3) provide a way for existing math programs to talk with Sage.

Including GMP is critical to Sage's usability.

Anyway, you're might be confusing the Sage library and the Sage distribution as
a whole.  The options to me seem to be:

  (1) fork GMP, GSL, GNUtls, etc., or

  (2) change the Sage Python library and Singular to GPL v2 or later.

If (2) were the case, the whole Sage distribution would be possible, and would
in effect have the GPL v3 license.   It appears that (1) would doom Sage to
irrelevance, but that (2) is manageable, depending on what the Singular
copyright holders decide.

> With regard to Pari, we really need to ask them what their license is.
> I don't see them explicitly granting the right to (at our option) use
> Pari under the terms of later versions of the GPL.

Nothing anywhere in the PARI distribution or startup banner makes any
statement about
GPL versions.  The only mention of GPL versions anywhere in Pari is in
the LICENSE.txt
file that they copied from the GNU website.  This means that one can
apply any version
of the GPL to PARI.  Please re-read section 9 of the GPL, especially
the last sentence
in the second paragraph below:

"9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

Each version is given a distinguishing version number.  If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation.  If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation."

This last sentence was quite a surprise to me!  But it's there.

> However, my bet is
> they will go to "GPLv2 or later" since they too wish to link against
> GMP.

But I don't think they will even worry about it given that
(I think) technically they already have.

William

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/
-~----------~----~----~----~------~----~------~--~---

Reply via email to