Hello Dinhelt,
Getting an answer to #1 (must include copyright w/ your organization
name) is pretty straight forward. Most open source licenses listed at
http://www.opensource.org/licenses/
will satisfy that. For example, one of the shortest licenses is the
MIT license described at
http://www.opensource.org/licenses/mit-license.php
which has a key phrase:
"The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software."
which ensures that your copyright notice (and thus your organization's
name) is included in copies of "the Software".
The disadvantage of a simple license like the MIT one is that the
people using your software is not required to give changes back to you
nor share any programs your software is linked with.
The GNU Public License described at
http://www.fsf.org/licensing/licenses/gpl.html
satisfies the primary intent of #2 through clause 5 which explicitly
prohibits modification or distribution unless the license is accepted.
When you modify or distribute the software, the rest of the license
comes into play. At this point, clause 3 becomes effective, requiring
source code disclosure of modifications to your software and any
programs [derived works] incorporating your software.
A little side note is appropriate at this point. A derived work is any
product that directly incorporates your software. So if someone else
compiles / statically links their code to your software, clause 3 (and
by implication 1 & 2) applies to all software in that product.
If someone else compiles / dyanmically links (to a shared libary) to
your software, that is not necessarily a derived product - one could
replace your software in the shared library and the overall product
would still work. An example of this is a GPL module to allow MS
Windows device drivers to run under Linux (a large GPL product) -
running a Windows driver in this way does not require the source code
of the Windows driver to be released.
In a similar way, if your software is built as one application and it
communicates to another application by a "pipe" or network interface,
the other application is not a derived work.
I find these points particularly difficult for many to understand,
request clarification if you need this point described more fully.
The first case I described above is sometimes called "Copyleft" where
derived works are required to be distributed under the GPL when it
incoporates GPL software. See also
http://en.wikipedia.org/wiki/Copyleft
or search with the phrase "copyleft" for more extensive explanations
of the concepts.
By the way, what I just described does not guarantee that
modifications to your software will be returned to your or made
publically available. Let me give you a couple counter examples.
[1] If I changed your software for my own use and did not distribute
it, I am not required to make the changes public. I am required by
clause 2 to add the notices of change, but since I do not distribute
it, I do not have to make the whole product subject to the GPL.
[2] If I changed your software and do distribute it, I am required by
clause 2 to add the notices of change and required to make the whole
product subject to the GPL. However, neither I nor my customers are
required to release the whole product publically. The customers MAY do
this and I MAY do this, but we are not required to do so.
So the GPL will give you the right to use modifications to your code
(your #2), subject to all the conditions of the GPL, provided you get
them.
The NASA Open Source License at
http://www.opensource.org/licenses/nasa1.3.php
has a clause (3 F if I counted correctly) that requests you "register"
your use and the modifications that are made to the software. Note
this is a "request" and not a "requirement". This is a little stronger
than the GPL in that you may get access to modifications and thus the
opportunity to use them in your application. It may be possible to
strengthen this clause, but I seem to recall that a requirement like
that would preclude adoption by opensource as an "open license".
By the way, a good example of the dual licensing is at
http://www.mysql.com/company/legal/licensing/opensource-license.html
for the open source description and at
http://www.mysql.com/company/legal/licensing/commercial-license.html
for the commercial license description. MySQL is distributed as GPL
software but the supplier offers commercial organizations the option
to get a commercial license as an alternative. In your case, if you
want to pursue this alternative, you may have to get permission from
all your contributors to make their changes available under the
commercial license (and allowing you to charge fees for commercial
use). If this sounds "too hard", I suggest you go with a standard
license such as the GPL.
To compare the license features more concisely, try a site like
http://www.croftsoft.com/library/tutorials/opensource/
which has a nice table near the top of the page or
http://www.gnu.org/philosophy/license-list.html
which is a commentary on licenses and compatibility with the GPL at
the Free Software Foundation or search with a phrase like
open source license comparison
gpl apl mit license comparison
or similar phrases to find further sites comparing license terms.
If some part of the answer is unclear or you need a point explained
more fully, please make a clarification request. Good luck with your
work.
--Maniac |