[ros-dev] CRT source code issue

Daniel Hazelton dhazelton at enter.net
Sat Aug 4 17:52:24 CEST 2007


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

-- 
Dialup is like pissing through a pipette. Slow and excruciatingly painful.


More information about the Ros-dev mailing list