|
One guy complained that his corporate lawyer interpreted CPOL in such a way as to prevent them from using code in a commercial app. I think I mentioned it here a while back.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Yep - wehad a chat to find out the problem and updated the license to ease his concerns. It was a clause that was, to us, fine, but didn't add enough value to make it worth the potential hassle to over-cautious, bed-wetting type lawyers.
(I know, I know: that's their job. They are paid to think of every possible inconceivable tiny obscure thing that might, in a million years, potentially mean you may have problem. I just wonder how some of these guys make it through the day. Probably by staying inside their expensive Audis and BMWs. Sigh.
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Recently I had the licence reviewed and the lawyers concensus was that CPOL is well written with the only foreseeable complaint being licence compatibility[^] in heterogeneous derivitive works.
Best Wishes,
-David Delaune
|
|
|
|
|
Would you mind forwarding your lawyers comments to me so that we can review them and if it makes sense amend the license. If there are kinks in the language we'd like to work them out if possible.
david --at-- codeproject.com
Thanks,
D
|
|
|
|
|
Chris, thanks for the clarification, but I'm still not clear. You say "Your customer only has to agree that the Executable Files are subject to the License". But which Executable Files? We would not be distributing Executable Files downloaded from CodeProject, but rather creating a Derivative Work which makes use of Source Code downloaded from CodeProject. Are you saying that Executable Files means the Derivative Work as well as binaries on CodeProject? That's not how the defition in the license reads to me. Sorry to be pedantic, I really need to get this clear.
|
|
|
|
|
The executable files refers to any executable files provided by the author of the CPOL'd code. If you were redistributing original downloaded exe's then you'd need to make sure the person receiving those exe's was aware they are subject to the CPOL.
Your derivitive work is a different matter. The important thing here is that if you are using CPOL code to create a new exe then you cannot create a situation where the author of the ode is more liable, or imply the author of the original code is offering a warranty or representation beyond what is represented in the CPOL
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Thanks Chris, this is what I needed. We would not be putting any liability on the author.
|
|
|
|
|
I have to say, that clause in the license has caused me a lot of grief.
"ensure that anyone receiving such Executable Files and Source Code agrees that the terms of this License apply"
This really seems to imply that you can't redistribute the source or binaries (modified or not) without a click-through agreement before download. I've had arguments with people about it because it's clearly (in the context of the license and CodeProject) not what was intended, but why can't this be phrased more like similar terms in the GPL and other licenses which simply say the first half:
"You must include a copy of, or the Uniform Resource Identifier for, this License with every copy of the Executable Files or Source Code You distribute"
Strictly speaking, requiring us to ensure other people agree to the License is burdensome, legally.
Additionally, since the license states that we may distribute as part of a commercial distribution, it seems like that clause should really use the same phrase from section 3: "the standard version of the Source Code or Executable Files," in order to be clear -- assuming that's really what was intended. --
Joel "Jaykul" Bennett [MVP]
Lynch's Law: When the going gets tough, everyone leaves.
|
|
|
|
|
The purpose of that clause is to ensure there isn't a nice, big loophole.
Suppose you download some code. In order for you to use the code you must abide by the terms of use. Suppose you don't want to, for instance suppose you want to strip all copyright notices, claim it's your work, sell it and make a billion dollars. Without the clause in question you could download the code, give it to someone else, and that someone else has not been made aware of the license and so may breach it.
So saying, I'll talk to someone and see if we can make this more streamlined. The last thing we want to do is cause confusion or make it difficult for those using the license and licensed code.cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
Yep. I understand that, and I really appreciate your willingness to listen!
I think the problem I've been having convincing people to use code that is under this license is just the phrasing -- most open source licenses have a similar clause -- the phrasing of yours appears to put the onus on the downstream developer to ensure that anyone who might get a copy of this agrees with the license. For instance, the Ms-PL specifically states what's required of us:
(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software. (D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
So the intent is basically the same as your clause, but they state that the requirement is just that I not distribute the source under some other license, and that I can fulfill this requirement by including a copy of the license with the source. That means that I can put the source on my public SVN server (for instance) without worrying about how I'm going to "ensure" that other people "agree" that the license applies. Joel "Jaykul" Bennett [MVP] <><
Lynch's Law: When the going gets tough, everyone leaves.
|
|
|
|
|
We've had a chat internally about how to address this and as a first step we're going to have another look over the license to see if we can find any other issues like you have mentioned, and then rework the wording to be less onerous. Clearly, being onerous isn't our intent, so we'll work to get that bit fixed soon.
Thanks for bringing this to our attention and apologies for the frustration this has been causing.cheers,
Chris Maunder
The Code Project | Co-founder
Microsoft C++ MVP
|
|
|
|
|
Chris Maunder wrote:
Your derivitive work is a different matter. The important thing here is that if you are using CPOL code to create a new exe then you cannot create a situation where the author of the ode is more liable, or imply the author of the original code is offering a warranty or representation beyond what is represented in the CPOL
I apologize for reviving this thread, but Kevin Draper's question is identical to mine.
Just to clarify, say I create a Derived work from the original code created by the author. I then only distribute the executables of the Derived work as a commercial product. I think what is being said here is that I don't need to include any notice whatsoever to the end-user of the presence of CPOL code in my product. Please forgive me if I'm mis-reading this- I do want to give credit where credit is due and follow appropriate guidelines.
|
|
|
|
|
|
Once an article is edited by a CP editor, the edit option is no longer available to authors - to modify your article, you should zip up the new html text plus downloads and screenshots, and email the zip file to submit@codeproject.com, giving the url path of your article, and any special instructions for the CP editors. It then gets put in the edit queue, and will be posted in the order received. To determine how long it will take to be processed, just email your question to submit@codeproject.com. When your article gets updated, you will be sent an email.
|
|
|
|
|
Hi Chris,
I noticed a rise in the number of messages originating from Afghanistan. And now this little conversation[^] tells me either something is really wrong, or the new membership page is misleading in one way or another.
Please have a look at it.
|
|
|
|
|
Which conversation?
(But I'll look into the countr thing)
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
The messages for that article are gone, you seem to have removed them; the article is now at version 3, it was version 1 when I posted.
The dialogue went something like:
"Are you really from Afghanistan?"
"What do you mean?"
"With a name like that?"
"Oh, I see what you mean. Fixed it."
|
|
|
|
|
Found the issue. Thanks!
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
You're welcome.
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Hi Chris,
when copying a code snippet from Visual Studio to a message editing box on CP,
my tabs (set to 4 in Visual) grow to 8, and larger snippets[^] tend to become too wide for comfort.
Is it at all possible to make both the editing and the viewing of forum messages use a smaller
tab width, in my very subjective opinion 4 would be ideal.
I do not want you to automatically untabify pasted text, and I do know I could have untabified
my snippet first, and I did read PIEBALDs recent article on the subject, but I want it to remain easy...
If the above is technically impossible, then I might be in favor of one more checkbox ("untabify by 4 while pasting") in the message editing page.
[ADDED]Another example[^], possibly less exemplary[/ADDED]
modified on Tuesday, January 20, 2009 12:17 PM
|
|
|
|
|
Welcome to HTML standards[^].
8 spaces. It's ridiculous.
My options:
1. Replace every tab with
This will mean pasting it into VS will lose tabs (though keep spaces)
2. Replace a tab with <span style='display:none'>[Tab character]</span><span style='margin-left:4em'></span>
This will allow tabs to be preserved at the expense of a bigger HTML download payload
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Hi Chris,
I experimented a bit with this:
a sp3
a nbsp3
a sp7
a nbsp7
a tab
a<span style="display:none"> </span><span style="margin-left:4em"></span>span4
ab sp2
ab nbsp2
ab sp6
ab nbsp6
ab tab
ab<span style="display:none"> </span><span style="margin-left:4em"></span>span4
ab<span style="display:none"> </span><span style="margin-left:3em"></span>span3
where spN is N regular spaces, nbspN is N non-breaking spaces, tab is a HTAB character,
spanN is a span entity with left margin N em
looking at it with FF3 and IE7, and pasting to VS2008.
observations:
- regular spaces and non-breaking spaces work identical inside PRE tags.
- tab width is not correct (too narrow), it does not match 8 spaces (both IE7 and FF3)
- 4em span width is correct on IE7, not on FF3, when 3 or 7 spaces would be required;
- 4em and 3em span width are not correct when 2 or 6 spaces would be required.
- copy-paste to Visual Studio works as expected (result is spaces or tabs)
conclusion:
- it is a mess; there seems to be no way to get it right for 2 popular browsers
- if anything needs changing, it is the browsers: they could offer a switch to set the
tab width to 8 (HTML standard) or less (4 or 2) at the user's discretion. I doubt it
they would even consider that if not specified in the HTML spec though.
- just keep tab handling at CP the way it is; there is no easy way to make it really better.
Thanks.
|
|
|
|
|
1em is the width of a (you guessed it!) M, which is different than the width of a space.
We used to change it so that tabs were converted to but this caused some gnashing of teeth.
I do wish the W3C would rush out tab-width as a standard.
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|
|
Hi Chris,
all my experiments got executed inside PRE tags, i.e. with non-proportional or monospaced fonts,
so I would expect an em, a 'M' and a space to all have exactly the same width
Luc Pattyn [Forum Guidelines] [My Articles]
- before you ask a question here, search CodeProject, then Google
- the quality and detail of your question reflects on the effectiveness of the help you are likely to get
- use the code block button (PRE tags) to preserve formatting when showing multi-line code snippets
|
|
|
|
|
Personally I'm ready to slap the W3C
cheers,
Chris Maunder
CodeProject.com : C++ MVP
|
|
|
|