Ok, I am making this page because I find myself constantly forgetting what licenses it is ok to use and which it is not ok to use. Let's begin shall we?
The overall goals behind Fluency are to create a dynamic tool for both programmers and non-programmers to use without having to create any restrictions on how or where it can be used. As such, any outside code, images, etc. that are used within Fluency must abide by these ideas; we don't want to force Fluency to be under any license other than the one we want it to be under. Therefore, any licensing system that restricts usage IN ANY WAY is not acceptable. It doesn't matter if the restriction is for use only in open source software (such as the GNU GPL). Below are a list of licenses that are ok, not ok, and iffy and a short definition of what they cover (please, please, PLEASE correct any of this if it is wrong):
**Please note that all of these interpretations are based on my research into the licenses. If there are any errors, please correct me**
Licenses that are OK to use:
Public Domain:
Although this isn't really a license, it is worth mentioning. Anything that is officially in the public domain is ok to use anywhere. Such work can always be used without restriction in anyway that is seen fit. Note that this does not mean you can just take code without attributing it to its appropriate author: THAT IS PLAGIARISM and is simply unacceptable. Give credit where credit is due. For more information about what is required for something to be Public Domain see http://www.bellevuelinux.org/publicdomain.html and http://www.linuxjournal.com/article/6225 for decent descriptions.
Note that the term "public domain" really only applies to things that are copyrightable (see http://www.copyright.gov/circs/circ1.html) which includes software but it does not cover things that are trademarkable (logos, emblems, etc.) or patentable (ideas, discoveries, devices, etc.).
ASF 2.0: The Apache License version 2.0 (http://www.apache.org/licenses/LICENSE-2.0)
This license fits very closely to the spirit of the Fluency project. It allows you to use any or all code under its license in any way as long as you include the license statement of the original code and make the appropriate mention of who created the original software you used/modified (see the above comment of plagiarism). It does not require that you provide the source code for your project (or for the licensed code you used). It does not grant the users of such licensed code any protection under the law but allows them to take that licensed code and include it under a new license if so desired (provided the above rules regarding the license statement and attribution are abided by).
BSD 2.0: The New BSD License (http://www.opensource.org/licenses/bsd-license.php)
This license is very similar to the ASF 2.0 license. It provides the same ability to redistribute and modify code it covers without requiring that you include the source or that you cover any modifications/uses of that code by the BSD license. As with the ASF 2.0, you have to include the license statement that is included with the original code and you must attribute said code to its rightful owner. Note that this license is NOT the same as the original BSD license (http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6); the difference is that code covered by the original BSD license requires that any advertisement of projects using said code must include a statement that says "This product includes software developed by the University of California, Berkeley and its contributors."
MIT: The MIT License (http://www.opensource.org/licenses/mit-license.html)
This license has the same controls as the ASF 2.0 and BSD 2.0. As with those, the point is that you can do whatever you want with the code as long as you include the license statement for the original code and you make the appropriate attribution to the original author(s). This license is becoming more commonplace now because it has been adopted by the OSI (http://www.opensource.org/) and is a very open, straightforward license (it was recently adopted by Adobe for their Adobe Open Source Libraries: http://opensource.adobe.com/licenses.html).
BCL: The Sun Microsystems Binary Code License (http://java.sun.com/javase/downloads/index.jsp):
Each version of Sun's JDK and JRE have their own version of the BCL and can be gotten to at the above link. Overall, they appear to have the same spirit (at least the latest versions); this is good because otherwise no one would be able to code in Java without being bogged down in legal issues. The flexibility provided by these licenses is less than that of the MIT, BSD 2.0 or ASF 2.0 but still allows for the unrestricted usage of libraries it covers; this is at least true in the desktop application setting but it is not clear how far this extends to commercial software. The most important restriction (and is directly reflected in the SCSI as discussed below) is that you do not have the right to modify any of the libraries in any way. Unless you are a l33t haxor and can modify compiled binary, lots of luck with that anyway. ;]
Licenses that are NOT OK to use:
GPL: The GNU General Public License (http://www.gnu.org/licenses/gpl.html)
Most commonly referred to as simply GPL, the General Public License applies to any code that is bundled with other GPL code. The only time that it is ok to have GPL code with non-GPL code (and retain that distinction) is when there exists a clear boundary between the two groups and the two groups are not distribtued together. This basically translates to "if you have GPL code ANYWHERE in your project, your project is under the GPL." Many license are described as "compatible with the GNU GPL." Such licenses may or may not be as restrictive as the actual GNU GPL and so it is not safe to make any assumptions based on such a statement; it is necessary to evaluate any such license based on the actual licensing document. See http://www.gnu.org/licenses/license-list.html#SoftwareLicenses for a list of licenses, many of which are stated to be "compatible with the GNU GPL."
SCSL: The Sun Community Source License (http://www.sun.com/software/communitysource/):
This is not really one specific license but rather a "philosophy" that forms the basis for a family of licenses that apply to the different technologies released recently by Sun. This is an incredibly restrictive license that only allows for "Research Use" of covered source code. Note that this does not apply generically to the Java libraries but only to the actual source code that was released by Sun. More or less, the license says you can look at and modify the source code without charge or restriction but any modifications you do may not be distributed IN ANY WAY without an explicit contract between you and Sun. In other words, the Java source code is interesting but do not think of using it in any way on this project. Only use Java libraries provided by Sun. Note that some libraries are released with their source code now; in such cases, only the source code itself is goverened by some varient of the SCSL. The compiled binaries are covered by Sun's Binary Code License (see above).
Licenses that are IFFY to use:
LGPL: The GNU Lesser GPL (http://www.gnu.org/copyleft/lesser.html)
Previously known as the Library GPL, this license seems at first glance to possible be ok since it allows for usage in both open source and proprietary software (as libraries). However, if any exectuable code is generated (and as far as I can tell, this applies equally to the byte code that Java uses because they really mean any "compiled" code) and that executable code even USES anything that is covered by an LGPL, that entire executable is covered by the LGPL so as to protect the originally covered work. In other words, even if you only link to an LGPL-covered library, your code is then under LGPL once it is compiled. (If this doesn't seem correct to you, look specifically at Section 5 under Terms & Conditions.) As a rule of thumb, if you want to use something that you believe to be under a GPL, please ask more senior members of this team for approval before introducing that code/library/etc into the codebase.
The Open Source Initiative has created a good list of current, commonly used licenses here: http://opensource.org/licenses/. I have only covered a fraction of them here but hopefully I have included most of those that you will commonly run into. Time permitting, I will update this document with more licenses.