On 9/24/07, Bill Hart <[EMAIL PROTECTED]> wrote: > OK, I hadn't read section 9 of the GPL. So now I agree with you that > Pari doesn't need to do anything. Excellent.
:-) > So basically all the new lines of SAGE code would be a library, which > can be linked against other libraries, and would be v2 or later. Yep. > The SAGE tarball, that contains everything, including GMP, would be > licensed under v3. But everything in it will need to be "V2 or later" > or "v3 or later". At present only SINGULAR is a problem in this > regard. That's probably the case. Does anybody know anything about the plans for Singular (Martin? Michael?). > With regards to Magma, yes, they'll be forced to dynamically link > against GMP. I wouldn't put it past them to write their own library > and dump GMP though. Some of their core code clearly already uses > their own code. For example they use different code for FFT > multiplication of integers and clearly have a different algorithm for > integer division. They only support a few target platforms, so this is > not that hard for them to manage. Magma supports more target platforms than any other commercial mathematical software and more targets than Sage. If you go here: https://magma.maths.usyd.edu.au/magma/export/ you'll see they support all of: Alpha (Linux) Alpha (OSF/Tru64) AMD64/Intel64 (Linux) AMD64/Intel64 (Solaris) i386/PC (Linux) i386/PC (Windows) IBM PowerPC64 (AIX) IBM PowerPC64 (Linux) Intel IA64 (Linux) Macintosh 32-bit Intel (OS X) Macintosh G4 (Mac OS X) Macintosh G5 (Mac OS X) Sparc (Solaris) Sparc64 (Solaris) It's actually pretty amazing. We should consider having similar support for Sage a challenge and priority. They won't jettison GMP. They also use several other LGPL (and soon to be LGPLv3) libraries, and I bet they'll just dynamically link them. After all, they already support that functionality (it's just not the default). > Possibly some other packages they use make use of GMP, and if *they* > go GPLv3 then likely Magma will just have to dynamically link to all > of those. Anyway, I think you are right. They will probably distribute > those libraries separately along with the LGPLv3 and just dynamically > link to them. That will give people the option of making drop in > replacements for them, according to the terms of the LGPLv3. Yep. That's what Maple already does too. It could be fun, because you could write a replacement to GMP that records all arithmetic operations that are done using GMP, then link Maple against it and see what Maple is doing... :-) > > Bill. > > On 24 Sep, 15:25, "William Stein" <[EMAIL PROTECTED]> wrote: > > 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 > > > > > -- William Stein Associate Professor of Mathematics University of Washington http://wstein.org --~--~---------~--~----~------------~-------~--~----~ 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/ -~----------~----~----~----~------~----~------~--~---