User:Norv/dev/Open Source FAQ

This small collection of questions is designed to assist the SMF community, with their questions related to Open Source software and licensing, in particular important since SMF itself has just joined the Open Source world, with its relicensing to BSD 3-clause, and the transition to an Open Source project is bound by misunderstandings and confusions. In the following, I will always use the terms "Open Source", "Free Software", "Free and Open Software", and "open licensing" quite interchangeably, in the spirit of the OSI definition of Open Source.

I would like to license my modifications or themes as Open Source. How do I do that?
You add the license information to your modification or theme, as a license file in your mod or theme directory, and package them together. You can additionally mention the copyright and/or license information in package-info.xml file, or in your source files.

Once you have done that, and distribute your customization with that license (and that license is an open license), the terms of the license you chose will ensure your package is available under those terms for the users.

Do I have to license my modification or theme as BSD?
No. SMF itself is BSD, a license chosen specifically, amongst others, to give you all the freedom to license your modifications or themes any way you choose. You can license them as BSD, yourself, thereby ensuring users will receive them always (from you or from their neighbour) with your copyright notices intact, no matter under what terms others may have made them available to people. You can also license with copyleft licenses, for example, thereby ensuring that your own code or design will always remain free and open source itself, even if others may update it or otherwise modify it, they can't lock it down in proprietary licenses. Please see here a little guide on choosing your license:

Free and Open Source Licenses

Why would I license my customization as Open Source?
If you release your customization as Open Source software, then you are making it available for users, free to use, to modify, and to share with others, improve upon it or fix a bug in it, update it and distribute it to people again. Not only on this site, but anywhere (including from a person to another, for someone to make it available to their friend, without them needing to go to this site to download it, they can just share it directly).

Open Source - as in Free Software, free to use, modify, share with others, modified or not (and that, usually with no money, but money or no money is actually not the point in this regard, you can very well ask for a distribution cost or services cost) - is the way to share your work to people, inviting them to collaborate with you, to improve it or to fix it, free to share at their turn, and by that, making your software something they can help with, they can build upon, and everyone wins. You may get help or ideas who didn't think of, people may help your software survive when you yourself might not be interested in it anymore, keep it up to date and improving it. Users will get a better software, because Open Source software has the chance that proprietary software doesn't: everyone can take part to it and make it better.

I didn't license my modifications, it means they're BSD now?
No. As per US and international laws on copyright and licensing, your software is under a proprietary license, if you didn't license it in any way. Licensing means giving permission, and you didn't give any permission, not even, for example, to update and attach an updated package in a thread. (yes, it is practically not allowed by the law to assume someone can do that, even if you wouldn't have anything against it yourself). Attaching a package means distributing it, strictly speaking, and a software without an Open License practically doesn't allow to be distributed (unless you do it yourself).

I would like to protect my copyright, though, not to give it away.
You always hold your copyright, you don't give it away by open sourcing your project. Open Source licenses are designed to protect author's copyright, many of them make sure the original author is also credited, no matter if others work on your software and release it. In the Open Source world, developers typically respect copyright and rights of others and would credit them anyway, however Open Source licenses make that legally binding too.

I would like to be credited as original developer or designer, though.
Please see above. Of course credit should be given where credit is due, and most Open Source licenses are designed to make sure the original author credit is always preserved. Nobody has the right to take your code and use it without crediting you.

I would like my code to be and remain Open Source, when others distribute it, modified or not.
Then you probably wish a copyleft license for your code, similar in spirit with what this wiki has: respecting the Share-Alike principle. CC-by-SA 3.0 (eventually CC-by-SA-NC, if you wish non-commercial share-alike) is probably the best known copyleft license for documentation, images, generally for content. And for software, you can choose a license like Mozilla 1.1 (MPL 1.1). Please see the licensing page for details on the options on copyleft.

I would like users to use my software, but not redistribute it, only I can give it to them.
Then you don't want an Open Source license. Whether for commercial purposes (although Open Source can also be commercial) or because you feel that way, then what you're looking for is a proprietary license. You can write it yourself, or find an example to others on something you'd see fit for your software.

SMF itself has been under a proprietary license, until SMF 2.0 has been released. I strongly discourage using the old SMF license for your code, because it has its problems that we are just get rid of. However you can always write your own terms and, if you want to be sure they're legally enforceable, ask a lawyer.

Open Source software means it's all for free, right?
Nope, not really (though many times, yes). There is a lot of confusion around these terms: the term "Open Source" or even "Free Software" doesn't always mean it's for free, one can very well ask for distribution fees or services fees, or other options, thereby making commercial contracts around the software, while still using a license that allows users the rights to use, modify, share and share their modifications. Depending on particular restrictions, the license might qualify as Open Source (as in F(L)OSS) or not.

If in doubt, open a discussion in the community for help, however please note that while there are people with more or less knowledge in the area, we are usually not lawyers, so we cannot and do not claim to give legal advice.

If I share my work as Open Source, can I still prevent that bad person to use it or modify it?
No. Open Source principles mean you share your work offering the possibility to users to take it, modify it, without discrimination. Both that good person and that bad person will be free to do it (under other kinds of conditions, but not discriminative conditions).

If I share my work as Open Source, can I allow others to share it as it is, but not distribute with their own modifications?
No. Open Source means you offer the right to people to study your work, improve it, modify it, and share their modifications. Of course, this sharing is always submitted to the terms of the license you want for your work, but if those terms don't allow that at all, then it's not Open Source.

That means, for example, for Mozilla 1.1 license, that who receives your software under Mozilla Public License 1.1, they are welcome to use it, study it, modify it, and share their modifications with users (by attaching them in a thread, or by distributing it on their site, or by submitting a patch to you on Github, whatever they wish), as long as they follow the terms of the license: mainly (not exclusively) always keep your copyright notices, license info, and distribute it under similar terms as you gave it to them.