I'm doing some contract work who need the source code for the application I'm writing. For the new files I'm writing for the customer, I'm giving them the copyright. However, there are some utility files (for OS abstractions like threading) I'm using that I've developed on my own (not on the customer's dime). I want to keep the right to use these files for my own future projects or future contracting jobs.
My question is, what type of license and copyright statement do I provide at the top of the source code file? I am considering something similar to the Boost Software License:
Copright (c) 2009 [my legal name]
Permission is hereby granted to [customer legal name], free of charge, to use, reproduce, modify, display, distribute, execute, and transmit the Software, and to prepare derivative works of the Software, and to permit third-parties to whom the Software is furnished to do so, all subject to the following:
The copyright notices in the Software and this entire statement, including the above license grant, this restriction and the following disclaimer, must be included in all copies of the Software, in whole or in part, and all derivative works of the Software, unless such copies or derivative works are solely in the form of machine-executable object code generated by a source language processor.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Is this license and copyright notice sufficient? Is there anyone in a similar situation that can post their license?
EDIT
The files that I'm concerned about right now are pretty simple -- just thin wrappers around OS-specific stuff (such as threading and mutexes). This isn't a library that I'd sell as a stand alone product, and is not something I'm concerned about the customer using or distributing in the future.
If I were to produce a library that I would intend to sell, I'd use a different license (for which I would most likely contact a lawyer).
It's just convenient to use these files on projects and I would hate to have the customer claim I could not use the software on future projects without paying them a royalty fee.
Thanks so much for the help!
- Kevin