On Saturday 04 August 2007 04:32:32 Mike Swanson wrote:
On Friday 03 August 2007 16:28:21 Daniel Hazelton wrote:
unless you hold full copyright to the software (ie: you are the one who has released it under the GPL) then there is no way you can distribute it for commercial purposes. (You can make money to cover distribution costs and/or make money from support but not off the software itself.)
Who gave you that idea? http://www.gnu.org/philosophy/selling.html
Then something changed somewhere along the line. (Probably at the GPLv2->GPLv3 transition, but...) The last time I had looked into making *any* money off of GPL covered software you weren't allowed to do much more than charge a fee to cover distribution costs. (And it was the GPLv2 that led me to that understanding. (Though looking at the GPLv2 again I can't quite figure out why I had this belief.)
Anyway...
Which of their three Licenses is the SSCLI2.0 released under? The "Permissive License" (which seems the most likely) does not have the stated anti-commercial restriction. The "Community License" also lacks that restriction. In fact, the only license that MS is using for their "Share Source Initiative" that doesn't explicitly permit commercial-sale is the "Reference License" - and that one only lets you have access to the source for *reference* purposes. (Oh, nevermind. I just downloaded SSCLI2.0 and it has a completely standalone license, separate from the three listed)
Okay, I can't see where the license shipped with the SSCLI2.0 source allows for conversion of any part to the GPL. Time to check the code as well - looks to me like this might all be a red-herring. And yes, it appears to be exactly that. The SSCLI2.0 code shows that, for "common floating point functions", there is a bare-bones wrapper around a call into the standard C runtime.
Example: (clr/src/classlibnative/float/comfloat.cpp) FCIMPL1_V(double, COMDouble::Sqrt, double d) WRAPPER_CONTRACT; STATIC_CONTRACT_SO_TOLERANT;
return (double) sqrt(d); FCIMPLEND
AAMOF, thats the only occurrence of sqrt() being defined - anywhere in the source. So it looks like the whole thing - even the existence of the same (or similar) assembler appearing somewhere - is just a red herring.
DRH