Note: The following information does not constitute legal advice. If you need help, it is recommended to contact a lawyer who specializes in licensing.
Choosing a license is a vital step when releasing your work. Owing to how copyright works, avoiding choosing a license does not mean that there are no restrictions; instead it means that all legal restrictions apply. As a result, if you want others to use your code, you need to choose a license. SMF feels that helping mod/theme authors to understand their rights and obligations towards anything they create is a crucial part of keeping a mod community alive.
Below is a list and brief overview of each of the most popular licenses in the Open Source community. Many others exist, so if none of these seem to fit your situation, you are welcome to look through the list on opensource.org or the choose a license site.
This is a basic approach to support your first step in choosing a license. After you find a license that "fits" your basic requirements, you need to "do your homework" and understand its full extent, for example several licenses have different versions/clauses, which are (slightly) different.
Apache Public License
This is a very open license. By choosing this, you allow others to modify your work and redistribute both your work and their changes for free or paid. Anyone who changes the code must keep an acknowledgement of you as an author within the code. This license additionally has some terms relating to protection from patents that should not affect most contributors.
- Code can be obfuscated or closed: yes
- Code can be re-licensed: yes (original code is still under Apache Public License; new code may use a more restrictive license)
- Credit must be retained: yes
Simplified BSD
The Simplified BSD license is possibly the closest open source license to the public domain. It is very similar to the Apache Public License, but a lot shorter. If you have no concerns about how your code may be used, distributed, or sold, as long as you get credit, this is the ideal license.
- Code can be obfuscated or closed: yes
- Code can be re-licensed: yes (original code is still under BSD License; new code may use a more restrictive license)
- Credit must be retained: yes
GNU Public License (GPL)
Possibly the most well-known open source license, owing to it being used by a number of very popular software products. This license has several restrictions on what others may do with your code. The source code can never be closed off and any changes must be distributed under the GPL. Owing to these restrictions, there are often issues when combined with code that has been licensed with incompatible restrictions. Version 3.0 of this license adds several controversial terms, so many projects still use version 2.0.
- Code can be obfuscated or closed: no
- Code can be re-licensed: no
- Credit must be retained: yes
GNU Lesser Public License (LGPL)
This license is very similar to the GPL. It has many of the same restrictions, but it can be combined more easily with code that has been licensed differently. Unless an overriding concern exists in requiring GPL-compatible licenses, the LGPL is preferred to the GPL.
- Code can be obfuscated or closed: no
- Code can be re-licensed: no
- Credit must be retained: yes
Unlicense ("Public Domain")
If you don't have any concerns over what is done with your code, you can release it under Unlicense. This is similar, but not quite identical to "public domain". As the law in most countries specifies that all creative works are copyrighted, anything you do is automatically copyrighted from moment it is created. This creates a problem as public domain status is not a license ("public domain" applies when copyright has expired on an item) and, as such, holds no legal value. The next best thing is to use the Unlicense.
Please note that SMF Customization Team will require the use of this license if you are using code provided by others, such as that posted in our Tips and Tricks board.
- Code can be obfuscated or closed: yes
- Code can be re-licensed: yes
- Credit must be retained: no
Closed/Restricted Licenses ("NoLicense")
Since PHP code is not compiled, there is no reliable way to create "closed source". You can, however, use a license that restricts what others can do with your code. For example, you may not want others to change your code, or even to redistribute it.
While you are free to choose such a license, it breaks the spirit of Open Source Software. For this reason, we encourage you to choose an open source license.
If you still wish to restrict your code usage and limit distribution, you can choose not to supply a license, which restricts all rights in your contributions. As we require a license statement for contributions, you should clearly note "All Rights Reserved" in your customization's description. As reserving all rights also restricts distribution, unless otherwise granted, by submitting to the SMF site, you grant the SMF site the right to distribute your contribution.