Software Licensing

One of the most important parts of free (as in freedom) software is the license. Determining a license is one of the constant concerns of the software libre and free culture community. As you know, a work is considered libre only if it’s published under a free (as in freedom) license.

One of the problems is that it happens a lot that a developer forgets to distribute its work under a proper license. Well it can be solved easily by reminding the community the importance of providing a license but the bigger problem is the license itself.

Most of the times, developer distribute their works with weak licenses or licenses that are not fully compatible with free (as in freedom) culture.

As far as I know, the most popular software license is MIT, as of 2020. MIT is a great simple libre license. However, it’s weak and not copyleft. I personally license my works under the latest version of GNU General Public License (GPL) but some people may don’t like it as they may find it unpleasing.

Anyway, what I’m talking about is the importance of license as the license specifies the terms of service and the use of the software. Whether it can be used for progress of technology or helping the people or only be used to please corporations against people, it’s all can be defined by the license.

We see a lot of corporations use software libre to develop their services for the better (of course better for themselves, not us) and it’s OK. The thing is by a good license, their software can be used by the people/community as well.

Choosing a good license can lead us to a world which a software developed by a community can be used for the goods of that community. Nowadays, many software developers see their software used by a company and that developer can’t even use that software because of the weakness of the license.

A good license like GPL promises that the software remains free (as in freedom) so everyone can benefit from it’s freedom anytime. It’s the beauty of the copyleft and a strong license.

GPL was written by a group of lawyers and Mr. Stallman himself to make sure that the software remains the way it should be.

Let me give you an example. Imagine you make a pie and share the recipe with others. Now a cook comes and makes some changes to your recipe and makes another pie but the cook won’t let you or anybody else to see how the pie was baked/made. The cook won’t even let you taste it a bit.

Now if you chose a strong license for your recipe, that cook would be forced to share the recipe and the way it cooked the pie with others just like you did. A work based on your work can benefit everybody.

GNU public licenses

What license should we choose?

Software

There’s a lot of libre licenses to choose but my personal favorite is GPL version 3+.

GNU General Public License

GNU GPLv3 is currently the latest version of GNU GPL. It’s a libre, legally-cited, copyleft license that promises your work will be free (as in freedom) and benefit-able by community. A lot of great software in world are licensed under GNU GPLv3.

However, there’s a lot of software that are licensed under previous version if it, GNU GPLv2. I think the most popular one is the Linux kernel which is the most popular kernel for GNU and GNU-based operating systems.

I suggest version 3 of it.

By licensing your work under GNU GPLv3 you can

  • Commercial use: Describes the ability to use the software for commercial purposes.
  • Modify: Describes the ability to modify the software and create derivatives.
  • Distribute: Describes the ability to distribute original or modified (derivative) works.
  • Place warranty: Describes the ability to place warranty on the software licensed.
  • Use patent claims: Describes the rights to practice patent claims of contributors to the code.

but you can’t

  • Sublicense: The GPL prohibits sublicensing, yet each user that receives the software automatically has the right to run, modify and distribute the work.
  • Hold liable: Describes the warranty and if the software/license owner can be charged for damages.

and you must

  • Include original: Describes whether copies of the original software or instructions to obtain copies must be distributed with the software.
  • State changes: Stating significant changes made to software.
  • Disclose source: All code linked with GPL 3.0 source code must be disclosed under a GPL 3.0 compatible license.
  • Include license: Including the full text of license in modified software.
  • Include copyright: Describes whether the original copyright must be retained.
  • Include install instructions: If the software is part of a consumer device, you must include the installation information necessary to modify and reinstall the software.

Apache License, Version 2.0

A free (as in freedom) software license, compatible with version 3 of the GNU GPL. However, it’s not compatible with version 2 of GNU GPL.

What you can do is to

  • Commercial use: Describes the ability to use the software for commercial purposes.
  • Modify: Describes the ability to modify the software and create derivatives.
  • Distribute: Describes the ability to distribute original or modified (derivative) works.
  • Sublicense: Describes the ability for you to grant/extend a license to the software.
  • Private use: Describes the ability to use/modify software freely without distributing it.
  • Use patent claims: Describes the rights to practice patent claims of contributors to the code.
  • place warranty: Describes the ability to place warranty on the software licensed.

but you can’t

  • Hold liable: Describes the warranty and if the software/license owner can be charged for damages.
  • Use trademark: Describes the allowance of using contributors’ names, trademarks or logos.

and you must

  • Include copyright: Describes whether the original copyright must be retained.
  • Include license: Including the full text of license in modified software.
  • State changes: Stating significant changes made to software.
  • Include notice: If the library has a “NOTICE” file with attribution notes, you must include that NOTICE when you distribute. You may append to this NOTICE file.

BSD 3-Clause License (Revised)

The BSD 3-clause license allows you almost unlimited freedom with the software so long as you include the BSD copyright and license notice in it. BSD 3-Clause is the original BSD license, modified by removal of the advertising clause. It is a lax, permissive non-copyleft free (as in freedom) software license, compatible with the GNU GPL.

By licensing your work under BSD 3-Clause you can

  • Commercial use: Describes the ability to use the software for commercial purposes.
  • Modify: Describes the ability to modify the software and create derivatives.
  • Distribute: Describes the ability to distribute original or modified (derivative) works.
  • Place warranty: Describes the ability to place warranty on the software licensed.

but you can’t

  • Use trademark: You may not use the names of the original company or its members to endorse derived products.
  • Hold liable: Describes the warranty and if the software/license owner can be charged for damages.

and you must

  • Include copyright: Describes whether the original copyright must be retained.
  • Include license: Including the full text of license in source or object code copies.
How to attribute CC photos

Writings, media, etc. (beside documentation and software)

Creative Commons Attribution-Sharealike 4.0 license

It allows you to do almost anything you want as long as you share your work under the same license. Also, you may not apply legal terms or technological measures that legally restrict others from doing anything the license permits.

CC BY-SA 4.0 is one-way compatible with the GNU GPL version 3: this means you may license your modified versions of CC BY-SA 4.0 materials under GNU GPL version 3, but you may not relicense GPL 3 licensed works under CC BY-SA 4.0.

By licensing your work under CC-BY-SA 4.0 you can

  • Commercial use: Describes the ability to use the software for commercial purposes.
  • Distribute: Describes the ability to distribute original or modified (derivative) works.
  • Modify: Describes the ability to modify the software and create derivatives.

but you can’t

  • Sublicense: Describes the ability for you to grant/extend a license to the software.

and you must

  • Give credit: Describes the need to give explicit credit to the author when distributing the software.
  • Include copyright: Describes whether the original copyright must be retained.
  • State changes: Stating significant changes made to software.

GNU Free Documentation License

The purpose of this License is to make a manual, textbook, or other functional and useful document “free” in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or non-commercially.

Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others.

Material licensed under the current version of the license can be used for any purpose, as long as the use meets certain conditions.

  • All previous authors of the work must be attributed.
  • All changes to the work must be logged.
  • All derivative works must be licensed under the same license.
  • The full text of the license, unmodified invariant sections as defined by the author if any, and any other added warranty disclaimers (such as a general disclaimer alerting readers that the document may not be accurate for example) and copyright notices from previous versions must be maintained.
  • Technical measures such as DRM may not be used to control or obstruct distribution or editing of the document.

The license explicitly separates any kind of “Document” from “Secondary Sections”, which may not be integrated with the Document, but exist as front-matter materials or appendices. Secondary sections can contain information regarding the author’s or publisher’s relationship to the subject matter, but not any subject matter itself.

While the Document itself is wholly editable, and is essentially covered by a license equivalent to (but mutually incompatible with) the GNU General Public License, some of the secondary sections have various restrictions designed primarily to deal with proper attribution to previous authors.

Specifically, the authors of prior versions have to be acknowledged and certain “invariant sections” specified by the original author and dealing with his or her relationship to the subject matter may not be changed. If the material is modified, its title has to be changed (unless the prior authors give permission to retain the title).

The license also has provisions for the handling of front-cover and back-cover texts of books, as well as for “History”, “Acknowledgements”, “Dedications” and “Endorsements” sections.

These features were added in part to make the license more financially attractive to commercial publishers of software documentation, some of whom were consulted during the drafting of the GFDL. “Endorsements” sections are intended to be used in official standard documents, where distribution of modified versions should only be permitted if they are not labeled as that standard any more.

CC0

CC0 is a public domain dedication from Creative Commons. A work released under CC0 is dedicated to the public domain to the fullest extent permitted by law. If that is not possible for any reason, CC0 also provides a lax, permissive license as a fallback. Both public domain works and the lax license provided by CC0 are compatible with the GNU GPL.

If you want to release your non-software work to the public domain, it’s recommended to you to use CC0. For works of software it is not recommended, as CC0 has a term expressly stating it does not grant you any patent licenses.

Because of this lack of patent grant, you should be careful about using software under this license; you should first consider whether the licensor might want to sue you for patent infringement. If the developer is refusing users patent licenses, the program is in effect a trap for users and users should avoid the program.

By licensing your work under CC0 you can

  • Commercial use: Describes the ability to use the software for commercial purposes.
  • Private use: Describes the ability to use/modify software freely without distributing it.
  • Modify: Describes the ability to modify the software and create derivatives.
  • Distribute: Describes the ability to distribute original or modified (derivative) works.

but you can’t

  • Use trademark: Under CC0, no license is granted for trademark use.
  • Hold liable: Describes the warranty and if the software/license owner can be charged for damages.
  • Use patent claims: CC0 makes sure that the content creator retains all patent rights and denies any license to those patents.

If you still don’t know what libre license to use and those I mentioned don’t fit you, take a look at gnu.org/licenses/license-list.en.html. Also, TLDRLegal cane be useful sometimes.

Leave a Reply

Your email address will not be published. Required fields are marked *