[Maxima-commits] CVS:maxima/share/contribsolve_rat_ineq.mac, NONE, 1.1



Richard Fateman wrote:

Hello,
> Perhaps you should read the discussion on sage-devel in google groups, to
> see if you can understand (and explain to the rest of us, in simple terms),
> why the use of gplv3 on GMP induced William Stein to fork the project.
>
>   
[Disclaimer: I am one of the people who forked GMP, so keep that in 
mind. I am trying to be neutral, but other people see the facts below 
differently]

GMP up and including to the 4.2.1 release was licensed under the LGPL 
V2.1+. The 4.2.2 release which only added a couple bug fixes was then 
released under the LGPL V3+ by the maintainer without any feedback from 
the GMP community, i.e. there was never a discussion about whether it 
would be a good idea to switch to a new license. Nearly every FSF 
project did a [minor] release after the [L]GPL V3 was finaly and  as far 
as I know every one of them switched from [L]GPL V2+ to [L]GPL V3+. 
While that is perfectly fine and the right of the FSF it forces projects 
that depend on FSF releases away from [L]GPL V2 only since [L]GPL V3+ is 
incompatible with [L]GPL V2 only. That incompatibility cannot be avoided 
due to the nature of the [L]GPL, so it was not "malicious" intent by the 
FSF to make those licensing choices impossible.

Some Sage developers [I am the lead on the Windows port] are porting all 
of Sage to the Microsoft compilers to do a native 64 bit version of 
Sage. Neither MinGW nor Cygwin can do 64 bit Windows now [there is a 
alpha quality MinGW based on gcc 4.4, but that isn't ready for prime 
time, Cygwin runs in 64 bit on Windows/Itanium, so neither one are an 
option]. GMP does not build with the Microsoft compiler for various 
issues, but a 64 bit port of GMP has existed for 2+ years by Brian 
Gladman. That GMP for example is used by MMA and Maple for their 32 and 
64 bit Windows releases. That patch has no chance to ever be merged in 
the official GMP since it does require a non-Free compiler and also uses 
Intel Syntax assembly instead of the m4 base assembly currently in the 
GMP tree. Microsoft Research has told us that they cannot run *any* 
[L]GPL V3+ only binaries or compile that code from source. Whether that 
is justified, i.e. the question whether the  [L]GPL V3 "targets" 
Microsoft is debatable, but I think in time Microsoft will learn to live 
with the [L]GPL V3+. If you remember the initial comments about the GPL 
V2 [that whole cancer comment] you might know what I am thinking about. 
In the end lawyers do not get paid to say "oh, this will probably work 
out", but they will err on the side of caution and I believe this is 
such a situation. Note that in my opinion software patents are bad, but 
IMHO other aspects of the [L]GPL V3 like the "Tivo clause" are 
overreaching. Also note that MS has been on the receiving end of many 
patent infringement lawsuits and while some of them are likely to be 
justified in many MS was on the end of some patent troll and has had to 
pay billions of dollars in damagers over the years. So MS itself is 
actually a proponent of patent reform.

Anyway, Sage itself wants to be GPL V2+ and due to [L]GPL V3+ components 
that we have in the tree [GMP, GSL, GNUTLS] we cannot distribute a 
binary under GPL V2+ if we so desired. Right now anything linked to Sage 
in a binary is GPL V3. Maxima is not linked against Sage so there is no 
problem there. All the non GPL V2 only code that we link against is 
being replaced and we hope to be done by the end of the year. As is we 
can drop in older, but compatible releases if we want to.

But the reason for the fork has little to do with the license, but since 
Microsoft is involved that issue became the center of the various flames 
that not unexpectedly erupted. If you look at 
http://sagemath.blogspot.com/2008/05/gmp-forked-torbjorn-granlund-blatant.html 
you will see various other reasons:

[quote]
1. FACT: (L)GPLv3 cannot be used by some companies.  See below where
I discuss this issue at length.

2. FACT: The GMP project is not developer friendly. This is easy to
see by reading the GMP mailing lists.

3. FACT: The GMP project does not have a regular and
predictable release cycle. How many times has the GMP 5.0 release
been moved back -- it used to be "sometime in 2007", but now the
GMP site says "5.0 is planned to come out in a couple of years."

4. FACT: The working code repository of GMP is closed.  There is
no public svn, etc. repository so that anybody can look at the latest
version of the GMP code. See 2.

5. FACT: Some extremely capable developers do not want to contribute to
an LGPL'd project, because they don't want their voluntary contributions
to be used by Maple, Mathematica and Magma to make money.

6. FACT: The GMP project is unfriendly toward natively supporting
Microsoft Windows using MSVC.  Just see any email you have sent
to Brian Gladdman.

7. FACT: The GMP project has been unfriendly toward supporting OS X.
Just search the gmp list archives for OS X
[end quote]

The main points are really 2, 3 and 4. In addition any code going into 
GMP requires the author to assign copyright to the FSF and many of the 
MPIR developers are unwilling to do that. Note that the fork is licensed 
under the GPL and not LGPL. Since the changes between 4.2.2 and 4.2.1 
are fairly small and we want to be GPL V2+ in the first place we forked 
that release. The fact that this helps MSR to run Sage is a deliberate 
choice on the end of the MPIR developers, but it certainly wasn't the 
main motivating factor to do so.

> I'm personally interested in improving and distributing Maxima as well as
> using it.
>   
>   

[personal opinion]
On a general note I see that  there are three major "free software" 
philosophies:

 * the BSD camp
 * the FSF
 * Open Source

with obvious differences. The BSD camp is the oldest and the project 
never coined any "free software" term, but everybody to this day calls 
it BSD-lisensed software. The FSF came before Open Source and has a 
different political goal than Open source, i.e. while many Open Source 
people want their software to be used regardless of underlying operating 
system *some* FSF advocates consider the fact that GPLed software is 
being ported and used on Windows a bad thing since it helps people stick 
to non-free alternatives and that is a code word for using Windows.

I personally thing that Firefox has done more for the concept of free 
software for the average Joe or Jane since in my personal opinion many 
people will not just decide one day that they need a change and 
wholesale migrate their computing needs to a 100% free alternative. 
Those people do exist and I too switched to Linux in 93 on my primary 
desktop and laptop [I still run Windows, Solaris and the occasional BSD 
and now also OSX], but I know that only few people did so. The year of 
the Linux desktop will always be next year for a long time to come since 
the vast majority of people are actually content with what they have and 
a switch to any alternative is often not worth the learning curve from 
their perspective.  But the fact that many millions are using Firefox or 
OpenOffice on Windows gets them familiar with application that should 
they one day decide for switch to a different and hopefully free OS they 
will see less of a burden to migrate than say if they only used IE and 
office. And that point of view seems to be pretty much in line with the 
average Sage developer point of view IMHO.

There is obviously the eternal debate of whether the GPL or the BSD 
license is "free-er", but that cannot be resolved. Good arguments exist 
for both sides and while I personally prefer the GPL I usually do 
contribute to a project under their existing license, be it GPL, LGPL or 
BSD.
[end personal opinion]

<SNIP>

Sorry for the long rant. Hope this helps,

Michael