Hi Pierre,

Thanks very much for your questions and comments. I attempt to answer
them below based on my (limited) understanding at this point in time.
Others might be able to give more clear or helpful answers.

On 12 April 2010 11:18, Pierre Joye <pierre....@gmail.com> wrote:
> hi,
>
> On Fri, Apr 9, 2010 at 2:55 PM, Bill Hart <goodwillh...@googlemail.com> wrote:
>> On 9 April 2010 13:23, Marc <marc.gli...@gmail.com> wrote:
>>> Hello,
>>>
>>> I am not sure I understand what is going on with MPIR. When the fork
>>> happened, 2 of the main stated goals where:
>>> 1) LGPL2 (required for sage+microsoft)
>>> --> MPIR is now LGPL3+ only
>>
>> Correct. Will this create any issues for you?
>
> What are the appealing reasons for this move given one of the initial
> arguments for mpir (gmp license changes)?

The main appeal is that we can use code from GMP without replicating
their efforts and accept code from developers who want to license
their code v3+. It basically means less effort for us, and faster
development times. It means that the bignum community is using a
single license and is less fragmented.

>
> Reading http://www.gnu.org/licenses/lgpl.html, I really wonder if this
> is a good move. I don't feel comfortable to add the GPL license to the
> PHP distribution (see the section 3b, 4b and 4c) as the PHP license is
> not compatible with the GPL. Things can get worst as we are testing
> mpir to be used with php engine for large integers related operations.
>

I can definitely understand that concern. It could even be confusing
to some people who don't understand that having the GPL license in the
distribution doesn't mean that it can only be distributed under the
terms of the GPL.

We will attempt to help out projects which definitely do not want to
use a v3+ MPIR: we will still port our bugfixes to MPIR 1.3.x which
will remain LGPL v2+. But new features will not be added to the
LGPLv2+ version (unless someone volunteers to maintain it and there
are sufficient LGPL v2+ code contributions to MPIR).

Regarding the GPL, this is a more restrictive license than LGPL and
thus if your project is LGPL it is automatically compatible with the
GPL. In fact with version 3 of the license, the LGPL is just a set of
exceptions to the GPL.

By "not compatible with the GPL", I assume you mean that you want to
distribute PHP under terms that are more permissive than the GPL will
allow. Of course this is absolutely fine as the LGPL gives precisely
these extra permissions. So long as you include both the GPL and LGPL
texts you can distribute under LGPL terms and are not restricted to
GPL terms only. It's a similar situation to what the old LGPL v2.1
gave you.

> I also have concerns about the legal aspects of the lgpl v3. I know
> that the v2 can be used safely but I've a bad feeling about the v3.

Our position on version 3 of the (L)GPL is well documented, so I won't
add anything here.

The reason we switched has nothing to do with the content of the
license, which we consider immaterial. It has everything to do with
making the project more developer friendly and contributing more to
the bignum community. It was wholly motivated by the very small
developer community we have, even after two years of working on MPIR,
and a desire to find ways of extending that community, or at least
increase the effectiveness of that community.

We realise that a license switch is slightly less user friendly and
slightly more developer friendly. But as a matter of strategy, we
decided that the latter was preferable given our slow growth.

The only other objections we've had so far are:

* One prominent developer thinks tivoisation is a good thing and
doesn't like v3 for that reason, but said he could live with it.

* I contacted Microsoft Research and an individual there commented
that they don't like v3, but if we back port bug fixes to MPIR 1.3
(which remains v2+) it won't make life too impossible for them (they
want to use MPIR as a basis for Pari and Sage if I understand
correctly, both of which they use for mathematical research).

> Does anyone have more in depth details about the actual changes
> between the two?

There seem to be very few implications for Open Source projects. Most
of the changes seem to be directed at lawyers, big software companies
and the like. There's a whole pile of legalese on issues such as
patents, tivoisation, etc.

A couple of important differences include (I am not a lawyer, this is
only what I've heard):

* Make a "prominent notice" that the library is used by your software
(LGPL section 4a).

* If you offer binaries for download somewhere you also have to give
equal access to the source for the library from the same location. See
section 6 of the GPL for more details on this fairly complex set of
rules. Don't ask me what they mean. I don't know either.

* Effectively you have to make it so that anyone can remove the
library and link in their own version if they want. (LGPL section 4d).

* There are some minimal requirements with regard to documenting how
to build the library (LGPL section 4e). But I've seen this abused,
with people including the requisite files but filling them with
nonsense. Despite fulfilling the legal requirements, this extra
information was completely worthless.

* You have to include the text of the GPL with any software that
includes the library as the LGPL is now a set of exceptions to the GPL
rather than a separate license (LGPL section 4b).

* You can't use any code which was LGPL v2 *only*. All the code must
have been licensed LGPL v2.1+ (or LGPL v3+). Of course that was
already a condition for any project which was overall LGPL v2+. I
think there are few if any mathematical projects still around which
are LGPL or GPL v2 only.

PHP is a pretty important customer for us. So please do keep us
informed on how this decision will affect you. And note that no final
decision has been made at this point as to whether MPIR will switch
permanently. It depends on the feedback we receive from the community
about the proposed switch. We can always go back to MPIR 1.3 and keep
developing in a completely independent way as LGPL v2+. However
development will be slower, especially if the development community
continues to remain small.

The only other option we considered was to start a completely new
library from scratch which is much simpler. The biggest issue for
people to volunteer to contribute to MPIR is the complexity of the
project. A simpler project may attract "new blood". I wrote a pile of
such code for integer multiplication (which I've not released). But
the performance was bad (10-15% slower than MPIR) and that was even
after linking against the MPIR assembly code. It was more like 50%
slower if I didn't do this. This is always going to be an issue in any
simpler project. Performance seems to mandate complexity. Also,
eventually simple projects grow up, and they become more complex.

Bill.

>
> Cheers,
> --
> Pierre
>
> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org
>
> --
> You received this message because you are subscribed to the Google Groups 
> "mpir-devel" group.
> To post to this group, send email to mpir-de...@googlegroups.com.
> To unsubscribe from this group, send email to 
> mpir-devel+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/mpir-devel?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to mpir-de...@googlegroups.com.
To unsubscribe from this group, send email to 
mpir-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to