views:

59

answers:

3

Hi,

I have developed an application that I would like to release as an open source project. In addition to my own code, I am using the following libraries:

  • Log4Net - Apache 2.0 License
  • NHibernate - LGPL
  • NVelocity - Apache 2.0 License
  • StructureMap - Apache 2.0 License
  • ASP.NET MVC - MS-PL?

I'm quite happy for people to do what they want with the application but want to ensure that I still own the copyright to any parts that I wrote (in case I wish to release a commercial version) and that the comments in the original source code (stating that I wrote it) must be kept - just for a bit of publicity if you will.

So I was thinking of releasing this under the Apache 2.0 license or MS-PL. Will either of these meet my requirements?

Thanks, Ben

+1  A: 

You could consider dual-licensing, releasing it under an open source license in case the code is used for an open source project, and a private license in case it's used for commercial use.

Edit: As John Milikin says, you'll always retain copyright unless it's explicitly released (eg, "I release this work into the public domain"). This is valid for most countries.

BSD license requires users to keep the copyright notice, but allows them to close the source and use it in a commercial way. I don't know if this is compatible with dual licensing.

These links may come handy in this case:

Fernando
A: 

Like @Fernando said, dual licensing is preferred in this scenario. The GPL typically goes well in dual licensing scenarios, since it's the most restrictive open source license, it really keeps users at bay, which is really what you want if you want to make a buck off it in some cases. However, this is just opinion, take it as such.

jer
What on earth are you talking about? The entire point of the GPL is to ensure maximum freedom for users. Perhaps you mean "keeps sleazy middlemen at bay".
John Millikin
GPL is far from "maximum freedom" which to me means you can do whatever you want with it. Instead it means that the users (which by my definition includes people who make derivative works) from using it in closed source products.
Davy8
Users are the people using the software, eg, the people actually running it on their computers.
John Millikin
@John Milikin, users are quite often the largest breachers of licensing terms, because they give their modifications to friends, etc without adhering to the conditions. I base my statement off personal experience. Your larger corporations, and whatnot, tend not to touch GPL software, especially with version 3's patent provisions and tivoization clause, it would mean huge cost to business. So these groups are typically *today* not the threat that the GPL tends to target, but the only ones that get coverage when a breach occurs. It's not a hateful statement, don't take it as such please.
jer
+1  A: 

I'm quite happy for people to do what they want with the application but want to ensure that I still own the copyright to any parts that I wrote (in case I wish to release a commercial version)

Assuming you live in the US, you'll always retain copyright unless it's explicitly released (eg, "I release this work into the public domain").

and that the comments in the original source code (stating that I wrote it) must be kept - just for a bit of publicity if you will.

This'll be more troublesome -- comments are usually considered part of the work, so if you require certain parts to be unchanged ("invariant") you may have to write a custom license.

Almost all open-source licenses, such as the X11 license, include instructions that the copyright notices are to be retained. If you're OK with not having attribution embedded in the code itself, all you have to do is include a license.txt with your name in it.

John Millikin
Thanks @John, great help. I live in the UK but suspect the same applies. I think I am going to go for the MS-PL as according to this:"(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."
Ben