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 have a small utility library of useful stuff written in Java that I plan on releasing open source. I've been wavering on what license to use. I quite like the BSD license, which is short and easy to understand, but I don't want/need the clause about including the disclaimer in their product's documentation. Considering just dropping that bit out.

Would the MIT license suit me better, then? It doesn't have the endorsement prohibition clause like the BSD one does, which is something I like about BSD's. Also, does MIT's clause about keeping the copyright notice on substantial portions of the software just refer to the source code, and not binary form or any documentation they produce?

From surveying other SO questions on the topic, I've seen a few people recommend the Apache license. Having a quick scan though it, it actually might do most of what I want really well, although even that amount of legalese makes my head hurt (particularly at 2:30AM when I should be in bed instead of on SO.) Thoughts?

Basically I want something that is:

  • easy to understand,
  • says you can use the code as you like, but keep my copyright and permission notice on the source code,
  • you don't need to put the name of me or my product or copyright notice etc. in any documentation, manuals, etc. that you produce,
  • don't try and use me or my product as a selling point for your product (not that my endorsement would count for much anyway!)
  • and covers my butt in a reasonable manner. :-)

EDIT: Wow, 30 minutes and already some good responses! In response:

I'd prefer not to "mix and match" if I can help it, and produce yet another open source license. Using a standard license makes it easier for all of us.

The butt covering comment is a bit tongue in cheek. The warranty disclaimer that all the licenses mentioned include is really all I'm talking about.

EDIT: Reading through the Wikipedia page on the MIT License, I discovered that ncurses uses a modified version that has been approved by the FSF, that adds a non-endorsement paragraph. I figure if it is good enough for them, it is good enough for me.

I was considering the Apache license, however compatibility problems with GPLv2 would be an issue I didn't want to introduce.

share|improve this question
    
I altered my answer to adapt to yours - this is a very pertinent question. –  Jordan L. Walbesser Feb 6 '09 at 16:35
    
Most of those other licenses came into existence because they didn't like something about GPL. I understand why you might not want a utility library to be GPL'ed, but have you considered the LGPL, which was originally designed specifically for utility libraries? –  John R. Strohm Jun 3 '11 at 18:13
add comment

migrated from stackoverflow.com Jun 3 '11 at 16:00

This question came from our site for professional and enthusiast programmers.

6 Answers

Write your own. Or have a look at the CC-licenses: Wikipedia

And don't even think about "covering" your butt. If you get sued, because someone wants to blame you, the biggest hurdle will be to finance the legal shit. Not to be covered from any angle.

Unless you are Novell ;)

share|improve this answer
    
Yes, well I did leave "reasonable manner" deliberately vague... –  Evan Feb 6 '09 at 15:52
    
The problem with writing your own is a) it might not be legally correct and b) people would have to read the whole thing carefully to understand their rights and most people would rather just use a license they already know –  Rein Henrichs Jun 3 '11 at 16:34
add comment

You could always add a prohibition clause to the MIT license. I've seen some versions of the license include it immediately after the existing clause. As for the copyright notice, the MIT license defines "the Software" as "this software and associated documentation files". That definitely includes documentation, and I'd argue it includes the binary form of the program, as well.

share|improve this answer
add comment

I use the Apache Licence for my projects. It seems to be the default licence choice in the Open Source Java world (thanks mostly to the early work of the Jakarta projects). It's less hassle to combine different libraries in one project if they all have the same licence.

share|improve this answer
add comment
  • Does MIT's clause about keeping the copyright notice on substantial portions of the software just refer to the source code, and not binary form or any documentation they produce?

My interpretation of the license is that you only need to have the copyright notice on the Software (which is defined in the first sentence as the license). This would refer only to the source code and documentation - binary form wouldn't contain the license, a compiler is going to throw out all the comments anyways. No to mention it's not human readable.

Feel free to add this clause to the MIT License (you are allowed to mix and match):

Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

The Apache license is more liability resistant, but to a programmer all the "legalese" will probably scare them away from using it. In my opinion (which is not legal advice), modifying the MIT license to contain the endorsement prohibition is the best way to go. Easiest to understand and the warranty waiver is going to cover any direct or indirect claims that come at you.

Edit to Author's Edit: If you don't want to mix and match licenses then go with the Apache license. It does everything you want and more (including some nice patent clauses). The license block for your code is simplistic because it will link to a website and it is well documented.

share|improve this answer
    
Adding "Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission." might make it GPLv2 incompatible as that's an additional requirement, which is not allowed by GPlv2. –  johannes May 14 '12 at 12:36
add comment

The boost license looks like what you want, doesn't it?

Boost Software License - Version 1.0 - August 17th, 2003

Permission is hereby granted, free of charge, to any person or organization obtaining a copy of the software and accompanying documentation covered by this license (the "Software") to use, reproduce, 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.

share|improve this answer
    
It reads like a version of the MIT license rewritten by a lawyer. :-) –  Evan Feb 11 '09 at 11:56
    
That's it ;-). This link explains the rationale and the history: boost.org/users/license.html Personally, I must say that I like it. –  theller Feb 11 '09 at 13:21
add comment

I use the zlib/libpng license. I think it has the properties that you want. It's short and simple, it specifically states that attribution is appreciated but not required, it disallows removing the copyright notice from source code, and it has some minimal language disclaiming liability.

It doesn't specifically say anything about disallowing endorsement, but while IANAL, I feel like that's not a big deal.

  • It's highly unlikely.
  • If my code ended up being a selling point, then I'd probably be sort of flattered.
  • If my code is being used in a way that I don't approve of, then I think that there would be other avenues for recourse. If someone tries to sell their product by advertising "jamesdlin wrote code to this product", then that's technically and objectively true, and if that actually helps them sell copies, so be it. If they claim that "jamesdlin recommends this product", then that's libel. Furthermore, in any situation where my name were somehow bankable, I likely would have some sufficient following that would allow me to easily dispute any false endorsements anyway.
share|improve this answer
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.