Topics: Developer Forum
Jan 23, 2007 at 4:46 AM

Thanks for the terrific work, it is great alternatove to CCR. Could you please explain to me in plain English, what does your license mean -
(A) Reciprocal Grants- For any file you distribute that contains code from the software (in source code or binary format),you must provide recipients the source code to that file along with a copy of this license, which license will govern that file.

Does it mean that I should make public all source files that use PCR classes?


Jan 24, 2007 at 8:34 PM
Hi. The license is the Microsoft Community Shared Source license here:

I not a license expert, but this seemed really simple and seemed to fit. This should clear it up:
"The Ms-CL (like the Mozilla Public License) works on a “file-by-file” basis. This means that if a developer uses Ms-CL code in a particular file then the entire file that contains the Ms-CL source code (including any other code in that file, no matter who wrote it), must be redistributed in source code form under the terms of the Ms-CL. On the other hand, for any files in larger works that do not contain Ms-CL code, the developer is free to license those files under the terms of their choice. This is true regardless of how these “non-Ms-CL” files interact with or communicate with the Ms-CL files at runtime. In other words, if the developer releases code under the Ms-CL and someone includes it in a file in their project (and then distributes their project to others), they must distribute under the Ms-CL anything that is in the specific file that contains the original developer’s work. While this file-by-file threshold might at first seem arbitrary, it has the benefit of being an easy to interpret, bright-line rule."

My take is this gives the dev a lot of flex. They can use the source per the license and keep their own code closed (well, most of it). Where ever you call the PCR API, all the code in that *.cs file needs to also have this license. So if you have a "wrapper" that contains the calls to the PCR, you need to Ms-CL those file(s). Any other code that calls your "wrapper" does not need the license and can be totally closed if you wish. Does this help?