Register FAQ Search Today's Posts Mark Forums Read

2011-09-26, 02:40   #1
WraithX

Mar 2006

1110110002 Posts

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 *

 2011-10-04, 03:25 #2 WraithX     Mar 2006 7308 Posts 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.
 2011-10-04, 12:11 #3 Jeff Gilchrist     Jun 2003 Ottawa, Canada 7·167 Posts 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.
2011-10-04, 17:27   #4
Mr. P-1

Jun 2003

7×167 Posts

Quote:
 Originally Posted by WraithX 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.

2011-10-04, 18:11   #5
Mr. P-1

Jun 2003

7×167 Posts

Quote:
 Originally Posted by Mr. P-1 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.

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.

 2011-10-06, 11:36 #6 jasonp Tribal Bullet     Oct 2004 3·52·47 Posts 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?
2011-10-06, 14:02   #7
Prime95
P90 years forever!

Aug 2002
Yeehaw, FL

154108 Posts

Quote:
 Originally Posted by jasonp 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?

Last fiddled with by Prime95 on 2011-10-06 at 14:03

2011-10-06, 16:37   #8
xilman
Bamboozled!

May 2003
Down not across

1009210 Posts

Quote:
 Originally Posted by jasonp 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

2011-10-06, 16:41   #9
xilman
Bamboozled!

May 2003
Down not across

22×3×292 Posts

Quote:
 Originally Posted by Prime95 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

2011-10-07, 16:05   #10
chris2be8

Sep 2009

2×52×37 Posts

Quote:
 Originally Posted by WraithX 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

2011-10-07, 18:33   #11
Mr. P-1

Jun 2003

7·167 Posts

Quote:
 Originally Posted by xilman 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.

 Similar Threads Thread Thread Starter Forum Replies Last Post gd_barnes Conjectures 'R Us 225 2020-07-07 22:17 gd_barnes No Prime Left Behind 48 2009-07-31 01:44 Unregistered Homework Help 0 2008-10-07 01:00 TTn PSearch 0 2004-05-04 13:16 Xyzzy Lounge 112 2003-10-16 13:23

All times are UTC. The time now is 18:36.

Wed Jul 15 18:36:11 UTC 2020 up 112 days, 16:09, 1 user, load averages: 2.07, 1.94, 1.93