Derivative works and copyright

Derivative works and copyright

Old forum URL: forums.lhotka.net/forums/t/3038.aspx


ladenedge posted on Wednesday, June 13, 2007

I was interested to learn today that one of our developers has used the CSLA .NET framework in a project, only he has subtly changed almost all of the identifiers in the package (eg. 'DataPortalEventArgs' became 'DataGatewayEventArgs' and so forth).  He also maintains that he is "not using" CSLA, though the code and comments are in many cases identical.

This disturbed me a bit, but on reading the license and the code, I can't find any restrictions on this sort of behavior.  The license notes that one "must not remove any copyright notices from the Software source code" - but there don't seem to be any in the first place!

Is there anything further that I or my company need to know about this situation, or is this developer - albeit dishonestly - in the clear?

(Note that the product in question is not a software development framework, nor is it intended to be distributed in source form - so neither of those license bullets seem to apply.)

tetranz replied on Wednesday, June 13, 2007

Rocky is the obvious one to answer your question but, just out of curiosity, has he indicated why he has done this?

ladenedge replied on Wednesday, June 13, 2007

Well, he hasn't even actually admitted to using it in the first place at the moment, so he of course hasn't said why either.

We had a license shakedown not long ago around here (mostly surrounding the use of open-source software products), and the license for CSLA came up at that time.  There was some concern that the framework redistribution limitations might affect us, as we are building a framework of sorts - just not one that competes in any sense with CSLA.  So, to speculate a bit, I suppose rather than risk having to redo the project, he just obfuscated the use of CSLA and rendered the questionability of the license a moot point (or so we thought).

ajj3085 replied on Wednesday, June 13, 2007

Well, its obvious to anyone that your coworker is in fact using Csla.  If it were to ever end up in court, I think the court would agree that he's violated the copyright.

From what I understand of copyright, you can't take someones book and just change the name of all the characters and some of the dialog, but you can write your own story from scratch which has a similar theme..so anyone can write a love story, but if its 90% identical to Romeo & Juliet, you're in trouble.

Bowman74 replied on Wednesday, June 13, 2007

As is previously stated, Rocky is the best person to answer this question but I will try and help to the best of my understanding. 

As I understand it you can take and modify CSLA to use in personal, internal and commercial apps  as long as it, or derivative works, are not sold as a commercial framework.  So making a commercial accounting package that uses it (even if everything is renamed) is OK, making a commercial framework product that extends/renames parts of it is not.

Now as far as the renaming thing goes, he is definitely using a derivative work.  Saying that it is "not using" CSLA is certainly trying to split some pretty fine hairs that don't agree with the license.  If you look at section 1 Rocky claims ownership of the framework and section 3 gives users a limited right to use it, which the developer in question has done.  No where does Rocky assign ownership of his intellectual property simply if someone creates a derivative work.  In fact, several sections make it quite clear that the license itself still does apply to derivative works and no assignment of ownership is made (see sections such 6 and 12).  By looking at section 9, the only thing your friend really owns are the names and logic he changed (such as the name DataGatewayEventArgs), but not the base software itself.

If the source code is going anywhere (including being passed around internally in your company) you are technically falling under section 4.  That is, he better be including license.txt inside your source control so it is identified as a derivative CSLA work to others in the company when they get it.  He is, in fact, using a derivative of CSLA that still has all the restrictions of the original license.

So from your description the company may or may not be in the clear depending on if that license.txt file is being honored and included with the source code wherever it is copied.  If not, your company could loose all rights to use it (section 10). 

If the developer is trying to take credit for the derivative work as his own original work then I would have to say that person probably is in violation of the agreement and has some ethical and professional challenges that may end up being a liability for the company in other ways too.  I know I would have some issues if I found out one of my developers was doing something of that nature.  But of course I don't know a lot about the situation except from what I can glean from your posting.  Take what I say with several grains of salt.

Nothing in this message should be taken or relied upon as legal advice.  Consult your company's legal staff.

Thanks,

Kevin

DesNolan replied on Wednesday, June 13, 2007

Legally it does not appear to me he has done anything wrong, if he's using the modified form of CSLA in house i.e. within the company he works for. There's no reason you shouldn't be able to rename things so they make more sense to you, or fit more inline with existing standards.

If he was distributing a derivative framework to other entities, that would be an issue, whether or not he was charging for it.

However, the fact that he's not acknowledging the source does not speak well of his character.

In addition, now that he has changed the name of everything, he will soon be stuck with trying to enhance the entire framework himself, and not be able to take advantage of future Rocky releases, or code templates supplied by other people. This will seriously hurt his productivity in the long run.

This is my own opinion as a software developer who's release code under similar terms as CSLA.

Cheers,

Des Nolan

Bowman74 replied on Wednesday, June 13, 2007

Des,

There are a couple of problems.  First and foremost he is claiming original authorship and thus copyright for his company.  I don't think what he did even is a derivative work, that's being generous.  That is, changing some names does not make it different enough from the original to be considered a new work.  But even if we do consider is a derivative work, the only part the deriver holds copyright on are the parts changed. 

Second the license.txt file has to be distributed with the source code if it is an external or an internal distribution, that was the agreement made when deciding to use CSLA.  The license file does not specify external and not internal for good reason.  It isn't hard to imagine a scenario where employee A uses CSLA and distributes the source code of his application to employee B without license.txt if it is not required and unconsciously not mentioning the fact that he modified an existing framework and used it (or employee B forgets that he mentioned that).  At a later date employee A has left the company and employee B brings up to his bosses a great idea about selling the framework employee A had made while with the company.  Who would know?

Thanks,

Kevin

RockfordLhotka replied on Thursday, June 14, 2007

The license really only requires a couple things. First, you can't use it to create a framework. Second, if you use it or derive from it you need to retain the copyright/license information.

Nothing prevents someone from renaming everything - though that seems silly. But people frequently rename the namespace to get it to fit into their standards, and that makes a lot of sense.

If, in fact, CSLA is being used to create a framework, then you need to contact me directly to see if we can work out a licensing agreement that works for both you and me. Otherwise it is true that you are on very shaky legal ground.

If part or all of CSLA is being used to do pretty much anything other than creating a framework, then you should be in good shape - though the copyright/license info should remain intact.

Not knowing the specifics of what you've observed it is impossible for me to say whether this is good or bad. It sounds like you have an unethical developer on your staff, which is very sad, and should be cause for serious concern having nothing to do with CSLA. But in any case, I do suggest that you take steps to ensure you aren't in violation of the license, because that could obviously have negative consequences.

Again, if you are building a framework please email me directly and we can go from there.

ladenedge replied on Thursday, June 14, 2007

Thank you all very much for your comments, they've been very helpful.  It sounds like the first order of business is to get the license into our source control system, and perhaps have a word with the developer in question.

As for the framework clause, I guess it might be important to find out how much the license intends 'framework' to cover.  While I would not say we are developing any sort of framework at the moment, there is some potential for this codebase to be used in a "framework" sometime later.  Without getting too specific, we are a storage company and the extent of the current development effort would eventually be something like a "foundation" for intellgent storage. 

It would not be, however, purely a software develop framework and it certainly wouldn't compete with CSLA in any sense.  I take this to be the intent of the license.  If I'm off or if what I've said leads you to think there might be potential for infringement, please do let me know - I'd be happy to have someone better versed in our roadmap get in touch with you!

Again, thank you everyone!

RockfordLhotka replied on Thursday, June 14, 2007

ladenedge:

As for the framework clause, I guess it might be important to find out how much the license intends 'framework' to cover.  While I would not say we are developing any sort of framework at the moment, there is some potential for this codebase to be used in a "framework" sometime later.  Without getting too specific, we are a storage company and the extent of the current development effort would eventually be something like a "foundation" for intellgent storage. 

It would not be, however, purely a software develop framework and it certainly wouldn't compete with CSLA in any sense.  I take this to be the intent of the license.  If I'm off or if what I've said leads you to think there might be potential for infringement, please do let me know - I'd be happy to have someone better versed in our roadmap get in touch with you!

You are correct, restricting creation of a "framework" is intended to prevent someone from reselling CSLA, selling something that is fundamentally CSLA or selling tools entirely based around using CSLA for software development. I reserve those rights specifically in case I choose to make a commercial version of CSLA, along with a related set of tooling, at some point in the future. (don't worry, I have no plans for that at the moment Wink [;)])

If your "framework" is somethink like an industry vertical, where you aren't selling a general development framework, but rather a framework to help create CRM, accounting or whatever type systems, then that is outside the restriction of the license.

Copyright (c) Marimer LLC