Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I recently developed an application for an organization (and I'm not charging them). I want to maintain total ownership of the source code and there are various Open Source Project that I've used. I want/need to comply by the rules of the licenses that they use and still keep the project within a few guidelines:

  1. If I ever give the source code out to the organization, It cannot be modified, redistributed, or shared in any form without my written permission (which needs to be re-obtained every version).
  2. It should always attribute credits to the developer.
  3. I retain all rights to redistribute/reuse the source code, since well, I made it
  4. It needs to comply with the App Store's rules (which aren't too open-source friendly)

The organization has retained the copyright for the compiled application (if that matters)

The licenses include:

  1. liberal BSD
  2. Apache License, Version 2.0
  3. royalty free
  4. public domain (same as 3)
  5. Small amount of artwork from an MIT licensed project

So my question is how can I comply with these licenses but also create a license for my own project that allows me to retain ownership of the source code.

share|improve this question
1  
Your guideline #1 seems to cover #3. –  Beta Aug 22 '11 at 12:51
    
So it seems upon second read :) –  HelloFictionalWorld Aug 22 '11 at 13:25
add comment

5 Answers

up vote 5 down vote accepted

Lets start with the code you write and ignore the other licenses for a moment. You retain copyright of any code you write unless you expressly give that copyright up (sell it, doing work for hire, etc). You say that the organization has retained copyright for the compiled application. This is confusing. I don't see how you can have copyright of your code and they can have copyright of the compiled application as either:

  • You could compile your code again and have an application they have copyright over, or
  • You retain copyright of the code but can never build it as the org has copyright over the resulting executable

This sounds like a legal minefield, and its fairly clear you need to consult a lawyer if you want to leave it as it is but sort it out at a later date.

Since you are doing the work for free, I would recommend you sit down with the org and work out a license between the two of you that is acceptable for both parties. Which probably means that the org has no copyright claims to the application or source code, but express permission to use without fee the application (and possibly permission to use the source and modify it in the future without fee, but I guess no license to sell or distribute the source code). Other wise you could turn around in 6 months and say, any changes to the app will cost this much and I'm not giving you the source code. It is unclear whether the work you are doing is covered by a contract. This is where you would put such points.

So think about that very carefully, and protect your rights, but be professional and protect your client as well.

Now for the mixed licenses.

  • Public domain code you don't need to worry about.

  • Royalty free is a loaded term. It literally means you don't need to pay royalties for it. I assume the author means freely open source, with no requirement to pay royalties, advertise, include a copyright notice etc, but I can only amuse that, you have access to the actual license.

  • BSD licenses require that you include a copyright notice, you will be obliged to do this, but there is no requirement to provide source code or relinquish copyright.

  • Apache is like BSD, it requires copyright and disclaimer notices to be distributed with code/application but is permissive and doesn't require you to release source code etc.

  • Once again the MIT license is permissive requiring only that a statement be included with code and application.

If you write code using other peoples code with he mentioned licenses you will retain copyright of it and you will have no requirement to provide that code to any one else. you will be able to sell that code, or license that code as you see fit. you will however have to reprint the associated copyright disclaimers. None of these licenses will jeopardize your ownership.

However you still need to figure out how you license your application and or code to the organization you are dealing with. And the usual warning applies, consult a lawyer if any of this is important to you. They have the experience and knowledge to make better sense of this then us.

share|improve this answer
add comment

Because the executable is a derivative work of your source, the organization you wrote it for cannot own its copyright unless you give it to them. Copyright descends on a work the instant you create it, and cannot be transferred to anyone else unless the copyright holder does so in writing.

If you want your client to have the copyright to the executable, then you will need to sign a copyright assignment for them.

As for your source code, you need to put a copyright and license notice at the beginning of all your source files:

Copyright (C) 2011 HelloFictionWorld. All Rights Reserved.

"All Rights Reserved" means that you are not granting any manner of license to anyone. However, some companies I've worked for wanted the following included as well:

This work is an unpublished proprietary trade secret of HelloFictionWorld.

share|improve this answer
    
+1 for "copyright assignment" –  HelloFictionalWorld Aug 22 '11 at 11:44
add comment

Back in the day, a very good book for answering this sort of question was Legal Care for Your Software. However it is long out of print, and so has not been updated to address open source licensing. I don't know of any equivalent book that has current information.

If you are going to work as a coder, you would do very well to learn about the parts of the law where you live that affect you, your work and your career. Newbies are often advised to consult attorneys, but IMHO attorneys are no substitute for doing one's own homework.

There is a self-help legal book publisher called Nolo Press that has books on a wide variety of topics. I used their How to Form Your Own California Corporation to incorporate my current company. The book was straightforward and clear, and my Articles of Incorporation were approved by the California Secretary of State in just a few days. Contrast that with the $1500 I was quoted by an attorney who I consulted for the incorporation of my previous company.

It's very important to actually read and understand the full text of each of the licenses you refer to. If you don't understand something about a particular license, ask about it here.

The BSD (Berkeley Software Distribution) license is quite clear that its notice must be retained in all derivative works. But when AT&T tried to sue UC Berkeley for infringing on AT&T's proprietary UNIX source code, it was found during discovery that AT&T has taken many of Berkeley's BSD licensed sources, removed the BSD license notices, then applied an AT&T copyright. That was blatantly illegal, and was the reason that AT&T lost the lawsuit.

Happily for us, it meant that the various *BSD disributions could be openly published without interference from AT&Ts attorneys.

share|improve this answer
add comment

As long as none of the licenses is 'viral' (such as GPL), you can use, modify and redistribute the code under any license you like. Some of those licenses require you to put their copyright notices into your code and documentation, but that's about the only practical consequence.

share|improve this answer
add comment

There is nothing special you need to do. If you don't provide them any license, all they can do is use it. They cannot modify it or redistribute it. Just to make sure there is no confusion, add a notation in the file that it is copyright by you as of some particular date and all rights are reserved.

You cannot give them less than nothing. And with no license, you are not giving them anything.

share|improve this answer
    
Check with a lawyer in your jurisdiction, as "work for hire" may imply the granting of a certain kind of license, baring an agreed upon contract with them that says otherwise. –  hotpaw2 Aug 22 '11 at 22:17
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.