The international validity of most common licenses is guaranteed by copyright law, and in particular by the [Copyright Treaty](https://en.wikipedia.org/wiki/WIPO_Copyright_Treaty)
of the United Nations' (UN) World Intellectual Property Organization (WIPO) adopted in 1996.
This treaty sets a common denominator for all adhering countries, but individual countries can still extend domestically
the reach of copyright. The article 4 of the Copyright Treaty clarified once for all that computer programs are
protected by copyright just as literary works.
Unfortunately, however, copyright law does not protect hardware objects.
Free software licenses are licenses which respect the [four fundamental software freedoms](https://www.gnu.org/philosophy/free-sw.en.html#four-freedoms)
defined by the Free Software Foundation.
Both copyleft and permissive license can, or cannot, be free licenses. For example, the [Modified BSD license](https://www.gnu.org/licenses/license-list.en.html#ModifiedBSD)
is a permissive non-copyleft free software license.
For further information on "patents and free software", head over to [this wikipedia article](https://en.wikipedia.org/wiki/Software_patents_and_free_software).
Over the years, hundreds of different software/artwork licenses have been written, used and abandoned.
This causes a big harm to the Free and Open Source community because it makes it more difficult for everybody to
understand their meaning and compatibility between them.
A common reaction of developers is to refuse discussions about licenses or their use altogether.
Rather than dispersing efforts in a multitude of isolated and incompatible efforts ([license proliferation](https://en.wikipedia.org/wiki/License_proliferation)),
we recommend using whenever possible only the mainstream licenses as highlighted in this page.
For more information on license compatibility, we recommend the commented [license list curated by the GNU project](https://www.gnu.org/licenses/license-list.html).
For software projects, we recommend whenever possible to utilize a copyleft license.
The only well-established licenses of this type are those of the GNU General Public License (GPL) family.
The GPL licenses have evolved over time and come with different versions. Unfortunately, some versions are not
compatible with older ones.
To avoid [license proliferation](#license-proliferation) and to ease compatibility with future versions, we recommend
using the "GNU Affero General Public License v3.0 or later" with SPDX license identifier ["AGPL-3.0-or-later"](https://spdx.org/licenses/AGPL-3.0-or-later.html).
The AGPL provides the maximum openness of the code: Even when the software runs on a server, users who interact with
that software (e.g. over a network connection) are entitled to receive a copy of the source code.
The [Affero GPL v3.0](https://www.gnu.org/licenses/agpl-3.0.en.html) is compatible with the [GPL v3.0](https://www.gnu.org/licenses/gpl-3.0.en.html)
and vice-versa thanks to article 13 in each license.
If using AGPL-3.0-or-later is not an option, we recommend using another license of the GNU family, such as the General
Public License (GPL), or the Lesser General Public License (LGPL), always indicating the version "**v3.0 or later**".
In some cases, such as when writing certain libraries, using the Lesser General Public License (LGPL) may lead to a
broader usage. In such cases, the [LGPL is preferred over the (A)GPL](https://www.gnu.org/licenses/gpl-faq.en.html#WhySomeGPLAndNotLGPL).
For software which is not very long (e.g. less than 300 lines of code) or unimportant, rather than using a copyleft
license you may consider using a [lax permissive license instead](https://www.gnu.org/licenses/gpl-faq.en.html#WhatIfWorkIsShort).
If you are not allowed to, or if you do not want to use a forever-open license (for example because the company you work
for does not allow you to do so) we recommend using a temporarily-open or permissive (in the sense that it permits users
to close source the code) license which contains a patent provision. To avoid [proliferation of licenses](#license-proliferation),
we recommend therefore to use the Apache license version 2.0 (SPDX license identifier Apache-2.0).
We recommend following the guidelines defined by the [GNU project](https://www.gnu.org/licenses/licenses.html).
They are recommended by the [Free Software Foundation](https://fsf.org), too.
Like CC themselves, Codeberg **recommends against** using a [CC license on code](https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software).
- [Licensing and Compliance Lab: The most frequently asked Frequently Asked Questions](https://www.fsf.org/blogs/licensing/licensing-and-compliance-lab-the-most-frequently-asked-frequently-asked-questions)