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