Software Licensing – How to Implement a Chosen Software License

agplfree softwaregpllicensingopen source

I have always kind of wondered, but never took my time to actually ask these questions regarding licensing. Most of these questions are presumably pretty basic, but I have no idea what I'm dealing with here.

The thing that baffles me the most is how exactly you "implement" the license for your OSS. Is just saying in the post you're publishing the code on, "by the way, this is licensed under GPL" enough? Or should something more delicate take place, like registering the software somewhere? Also,

  • If I just say I use a particular license, is that enough?
  • Do I add a copy of the license to the distributed code?
  • Am I required to add a header on every file detailing the licensing information? Do I manage this with my version control system (e.g. Subversion)?
  • Is the above not enough?
  • What are the most commonly used software licenses?
  • Are there any gotchas/licenses that are better left alone?

Best Answer

I'm not a lawyer, and this depends on which country you are in.

Having said that, I understand that saying you use a particular license and attaching a notice to that effect within the source code is sufficient. Adding license text to every file is probably over-cautious.

Remember: if there is no license, then someone isn't allowed to copy your code at all under copyright law (with certain fair use exceptions).

Ultimately it's up to the courts to decide. But I think that if you published your source code with the clear intent to offer it under a particular license, a court would agree that the license was intended to apply to the complete work.

If you are choosing an open source license, please stick with one of the major ones. This avoids confusion about unusual licenses and significantly increases opportunities for collaboration and code sharing. In particular, the OSI lists a number of "Licenses that are popular and widely used or with strong communities". I'd strongly recommend sticking to one of these!

  • Apache License, 2.0 (Apache-2.0)
  • BSD 3-Clause "New" or "Revised" license (BSD-3-Clause)
  • BSD 3-Clause "Simplified" or "FreeBSD" license (BSD-2-Clause)
  • GNU General Public License (GPL)
  • GNU Library or "Lesser" General Public License (LGPL)
  • MIT license (MIT)
  • Mozilla Public License 2.0 (MPL-2.0)
  • Common Development and Distribution License (CDDL-1.0)
  • Eclipse Public License (EPL-1.0)

The Free Software Federation / GNU project also has some useful pages about open source licensing, including the recommended copyleft licenses.

Related Topic