mersenneforum.org  

Go Back   mersenneforum.org > Factoring Projects > GMP-ECM

Reply
 
Thread Tools
Old 2011-09-26, 02:40   #1
WraithX
 
WraithX's Avatar
 
Mar 2006

7308 Posts
Default Questions about software licenses...

With the help of PaulZ and GeorgeW, I have been able to compile 32-bit and 64-bit windows binaries of GMP-ECM with the GWNUM library. However, the binary prints a message saying:
Quote:
Due to incompatible licenses, this binary file must not be distributed.
I believe this is due to the fact that GMP-ECM is licensed under both GPL and LGPL, and GWNUM is George's proprietary code.

Both PaulZ and GeorgeW have given permission to allow the binaries to be hosted at the MersenneForum, but before going forward with this, we want to make sure that this is enough. Is there anyone here who is familiar with licensing issues that can let us know what needs to be in place before such file hosting takes place? Is there any more information that is needed before an answer can be given?

Also, if I have mis-attributed any licensing information, George or Alex can let us know the correct information.

Here is a list of the files in GMP-ECM and GWNUM that have references to GNU General Public License, or GNU Lesser General Public License in them.
Quote:
*** GMP-ECM ***
$ grep -i "gnu general" -l *
COPYING, COPYING.LIB, Fgw.c, auxi.c, b1_ainc.c, bestdaux.c
candi.c, compile, config.guess, config.status, config.sub
configure, countsmooth.c, depcomp, ecm-ecm.h, ecm-impl.h
ecmfactor.c, ecmfactor2.c, eval.c, libtool, ltmain.sh
main.c, missing, resume.c, rho.gp, runecm2.c, test.ecm
test.pm1, test.pp1, testlong.pp1, trial.c, tune.c

$ grep -i "gnu lesser" -l *
COPYING.LIB, auxarith.c, auxlib.c, bestd.c, ecm-gmp.h
ecm.c, ecm.h, ecm2.c, ecm_ntt.c, factor.c, getprime.c
ks-multiply.c, listz.c, longlong.h, lucas.c, median.c
memory.c, mpmod.c, mpzspm.c, mpzspv.c, mul_fft.c, mul_lo.c
ntt_gfp.c, pm1.c, pm1fs2.c, polyeval.c, pp1.c, random.c
rho.c, schoen_strass.c, sets_long.c, sp.c, sp.h
spm.c, spv.c, stage2.c, toomcook.c

*** GWNUM ***
$ grep -i "gnu general" -l *
ecmstag1.c

$ grep -i "gnu lesser" -l *
WraithX is offline   Reply With Quote
Old 2011-10-04, 03:25   #2
WraithX
 
WraithX's Avatar
 
Mar 2006

23×59 Posts
Default

So, does anyone here know about licensing issues or does anyone here know somebody off-forum that knows about licensing issues? The facts so far are that the maintainers of both packages (GMP-ECM and GWNUM) have each given permission for this combined binary to be hosted here on the mersenneforum.

Does anyone know if this is enough? Maybe we can find documentation in the GPL or LGPL licenses that references situations like these? Can anybody think of other requirements that should be met before hosting this kind of binary?

In an attempt to make finding the answers a little more worth-while, I would like to let everyone know that using the GWNUM library in GMP-ECM can finish stage 1 anywhere from 1.1 to 5.5 times faster than GMP-ECM alone. The GWNUM library can be used on numbers (or factors of numbers) of the form k*b^n+c. And, from the little testing I have been able to perform, it seems the larger the input number, the greater the speed-up you can get from GWNUM in stage 1.

We would really like to post these (Windows 32-bit and Windows 64-bit) binaries here, but we want to make sure we are on the straight and narrow. Any comments or feed-back on these issues is welcome.
WraithX is offline   Reply With Quote
Old 2011-10-04, 12:11   #3
Jeff Gilchrist
 
Jeff Gilchrist's Avatar
 
Jun 2003
Ottawa, Canada

7×167 Posts
Default

I'm not a lawyer but if the two package maintainers have given you permission, they are not going to complain. So what is the worst case scenario if you do post the binaries? Someone else might complain and ask you to take them down or modify the contents to comply with some regulation right? I think it is pretty low risk to do so, especially since you are not making any money from this.

Don't forget that GMP-ECM uses GMP/MPIR so their code would also be included in the binary so you may want to double check with them as well.

Jeff.
Jeff Gilchrist is offline   Reply With Quote
Old 2011-10-04, 17:27   #4
Mr. P-1
 
Mr. P-1's Avatar
 
Jun 2003

100100100012 Posts
Default

Quote:
Originally Posted by WraithX View Post
So, does anyone here know about licensing issues or does anyone here know somebody off-forum that knows about licensing issues? The facts so far are that the maintainers of both packages (GMP-ECM and GWNUM) have each given permission for this combined binary to be hosted here on the mersenneforum.[

Does anyone know if this is enough? Maybe we can find documentation in the GPL or LGPL licenses that references situations like these? Can anybody think of other requirements that should be met before hosting this kind of binary?
Package Maintainers do not have the power ex officio to abrogate the licencing conditions on the packages they maintain. That right belongs to the copyright holders.

In this case, the package maintainers are (substantially or entirely) the copyright holders. If all the copyright holders give permission for the combined binary to be hosted on mersenneforum, then it may be so hosted. It would help, however, if the copyright holders could clarify a couple of matters.

1. Will the complete source used to build the combined binaries be made available?

2. Under what conditions (if any) may recipients of the binaries (and/or source if available) redistribute them?

One possible answer to 2 is "GPL with an additional restriction". This would work, (at the cost of rendering the source in this "fork" of GMP-ECM incompatible with ordinary GPL). There is however one potential trap that George should be aware of. If the distribution terms allow "GPL" to be GPLv3 (Either by specifying GPLv3 explicitly, some earlier version "or any later", or by failing to specify the version at all), then any recipient may, under the terms of GPLv3 remove the restriction, and distribute under the unrestricted terms of GPLv3.
Mr. P-1 is offline   Reply With Quote
Old 2011-10-04, 18:11   #5
Mr. P-1
 
Mr. P-1's Avatar
 
Jun 2003

7·167 Posts
Default

Quote:
Originally Posted by Mr. P-1 View Post
One possible answer to 2 is "GPL with an additional restriction". This would work, (at the cost of rendering the source in this "fork" of GMP-ECM incompatible with ordinary GPL). There is however one potential trap that George should be aware of. If the distribution terms allow "GPL" to be GPLv3 (Either by specifying GPLv3 explicitly, some earlier version "or any later", or by failing to specify the version at all), then any recipient may, under the terms of GPLv3 remove the restriction, and distribute under the unrestricted terms of GPLv3.
Another possibility, which avoids the above problem is "GPL with an additional permission". Specifically, George does not put his software under GPL, but continues to distribute it under its current terms. If George does not do so, then nobody else can make his software subject to the GPL. The GMP-ECM copyright holders distribute their software under GPL with the following rider:

"As an additional permission, you may link the source (or a modified version of it) with any version (including a modified version) of George Woltman's bignum library, and distribute the resulting combined binary and/or combined sources, provided that you

1. comply fully with the licence conditions of the bignum library.

2. grant this additional permission to anyone who receives a copy.

3. comply with the terms of GPL version <foo>, to the maxim extent possible, consistent with 1 and 2 above.

You may remove this additional permission and distribute GMP-ECM under the pure terms of GPL version <foo>. However, nothing else gives you permission to link the software to George Woltman's Bignum library or to distribute the combined software. If you do not distribute the combined software in accordance with terms of this additional permission, including its requirement that you grant this additional permission to anyone who receives a copy, then you may not distribute the combined software at all."

IANAL. TINLA. LBYL.
Mr. P-1 is offline   Reply With Quote
Old 2011-10-06, 11:36   #6
jasonp
Tribal Bullet
 
jasonp's Avatar
 
Oct 2004

3,527 Posts
Default

Note that if you make any modifications to GMP-ECM and produce new binaries, those modifications must be made available too. It's the 'poison pill' clause of LGPL that makes LGPL code behave like GPL code, meaning that if your large project incorporates a changed version of GMP-ECM, different from the 'official' one, then you must make the source of your entire large project available. If that is incompatible with some other code you are using, e.g. Prime95 reserves the right to hide some networking code, then adding a modified GMP-ECM to it will violate the copyright restrictions of that other code.

Ain't licenses grand?
jasonp is offline   Reply With Quote
Old 2011-10-06, 14:02   #7
Prime95
P90 years forever!
 
Prime95's Avatar
 
Aug 2002
Yeehaw, FL

2×5×19×37 Posts
Default

Quote:
Originally Posted by jasonp View Post
Note that if you make any modifications to GMP-ECM and produce new binaries, those modifications must be made available too. It's the 'poison pill' clause of LGPL that makes LGPL code behave like GPL code, meaning that if your large project incorporates a changed version of GMP-ECM, different from the 'official' one, then you must make the source of your entire large project available. If that is incompatible with some other code you are using, e.g. Prime95 reserves the right to hide some networking code, then adding a modified GMP-ECM to it will violate the copyright restrictions of that other code.

Ain't licenses grand?
We are linking GMP-ECM with the GWNUM library. All GWNUM code is freely available. GWNUM has a license restriction that if you use it to find Mersenne primes you must obey the GIMPS rules for sharing any prizes.

The question is by agreeing to let someone post an executable built with GWNUM in a GPL program, have I implicitly agreed that GWNUM is subject to the GPL license?

And no, licenses ain't grand!

Last fiddled with by Prime95 on 2011-10-06 at 14:03
Prime95 is offline   Reply With Quote
Old 2011-10-06, 16:37   #8
xilman
Bamboozled!
 
xilman's Avatar
 
May 2003
Down not across

1017110 Posts
Default

Quote:
Originally Posted by jasonp View Post
Note that if you make any modifications to GMP-ECM and produce new binaries, those modifications must be made available too. It's the 'poison pill' clause of LGPL that makes LGPL code behave like GPL code, meaning that if your large project incorporates a changed version of GMP-ECM, different from the 'official' one, then you must make the source of your entire large project available. If that is incompatible with some other code you are using, e.g. Prime95 reserves the right to hide some networking code, then adding a modified GMP-ECM to it will violate the copyright restrictions of that other code.

Ain't licenses grand?
I'm not sure that's the case. Although IANAL, I've worked in a couple of quite different environments where the study of software licenses was a necessary part of my job.

As I understand the LGPL, you need not make your source available if you release a binary composed in part of LGPL licensed code.. What you must do is give recipients the ability to re-link your code with a modified version of the LGPL licensed code. In effect you must release the object code, or equivalent, of your work and instructions on how a functional binary may be made with your object code and a new version of the remainder.

It's the GPL proper which requires that full sources also be made available.


Paul
xilman is offline   Reply With Quote
Old 2011-10-06, 16:41   #9
xilman
Bamboozled!
 
xilman's Avatar
 
May 2003
Down not across

7×1,453 Posts
Default

Quote:
Originally Posted by Prime95 View Post
We are linking GMP-ECM with the GWNUM library. All GWNUM code is freely available. GWNUM has a license restriction that if you use it to find Mersenne primes you must obey the GIMPS rules for sharing any prizes.

The question is by agreeing to let someone post an executable built with GWNUM in a GPL program, have I implicitly agreed that GWNUM is subject to the GPL license?
#include <IANAL.h>

Yes, if that code is GPL licensed. No if it is LGPL licensed.

I've had a run in with the GMP developers in the past with a curious situation where I've been willing and able to release full source code but unable to provide anyone with a binary as a courtesy to relieve them of the necessity to perform the build themselves. Part of the program was BSD licensed by a third party and so I was unable to make the complete program available under the GPL. Re-distributing BSD source is permissible and I was willing to make my contributions available without restriction.

Lawyers!

Paul

Last fiddled with by xilman on 2011-10-06 at 16:41
xilman is offline   Reply With Quote
Old 2011-10-07, 16:05   #10
chris2be8
 
chris2be8's Avatar
 
Sep 2009

186310 Posts
Default

Quote:
Originally Posted by WraithX View Post
In an attempt to make finding the answers a little more worth-while, I would like to let everyone know that using the GWNUM library in GMP-ECM can finish stage 1 anywhere from 1.1 to 5.5 times faster than GMP-ECM alone. The GWNUM library can be used on numbers (or factors of numbers) of the form k*b^n+c. And, from the little testing I have been able to perform, it seems the larger the input number, the greater the speed-up you can get from GWNUM in stage 1.
Where is the source for GWNUM? I would certainly like the speedup! And I'm not afraid of compiling programs.

This assumes it works under Linux.

Chris
chris2be8 is offline   Reply With Quote
Old 2011-10-07, 18:33   #11
Mr. P-1
 
Mr. P-1's Avatar
 
Jun 2003

7×167 Posts
Default

Quote:
Originally Posted by xilman View Post
I've had a run in with the GMP developers in the past with a curious situation where I've been willing and able to release full source code but unable to provide anyone with a binary as a courtesy to relieve them of the necessity to perform the build themselves. Part of the program was BSD licensed by a third party and so I was unable to make the complete program available under the GPL. Re-distributing BSD source is permissible and I was willing to make my contributions available without restriction.
IANAL, but this doesn't sound right to me.

AIUI, the BSD licence is completely compatible with the GPL. You can distribute binaries, but if you do, then you must also provide access to the corresponding source in one of the ways specified in the GPL, and also comply with the other conditions of the GPL. This applies whether or not the program contains code licensed under BSD or any other GPL-compatible licence.

Last fiddled with by Mr. P-1 on 2011-10-07 at 18:33 Reason: Added IANAL disclaimer.
Mr. P-1 is offline   Reply With Quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
Software/instructions/questions gd_barnes Conjectures 'R Us 233 2020-08-07 03:44
Software/instructions/questions gd_barnes No Prime Left Behind 48 2009-07-31 01:44
Best Software? Unregistered Homework Help 0 2008-10-07 01:00
Software TTn PSearch 0 2004-05-04 13:16
New software... Xyzzy Lounge 112 2003-10-16 13:23

All times are UTC. The time now is 07:30.

Tue Aug 11 07:30:22 UTC 2020 up 25 days, 3:17, 1 user, load averages: 2.46, 1.91, 1.90

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.

This forum has received and complied with 0 (zero) government requests for information.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.
A copy of the license is included in the FAQ.