[{"body":" The freedom to use the software for any purpose. The freedom to study and improve the software. The freedom to share the software. The freedom to collaborate on the software. Let\u0026rsquo;s examine each of the four freedoms in more detail.\n0: Use the software The \u0026ldquo;zeroth\u0026rdquo; freedom guarantees the right for everyone to use the software for any purpose. You are entitled to the use of any free software for any purpose, including commercial use \u0026ndash; counter-intuitively, you can sell free software. You can also incorporate free software into your own work, but be careful \u0026ndash; there are some gotchas here, which we cover under use \u0026amp; reuse.\nIn free software lingo, this is often called the \u0026ldquo;non-discrimination\u0026rdquo; requirement. 1: Study and improve the software The first freedom guarantees the right to study the program\u0026rsquo;s behavior. You have a right to understand how the software you depend on works! In order to facilitate this, the source code must be included with the software. The publishers of free software cannot obfuscate the source code, forbid reverse engineering, or otherwise prevent you from making use of it.\nMoreover, you have a right to improve the source code. You are not only given the right to read the source code of free software, but also to change it to better suit your needs.\n2: Share the software The second freedom guarantees the right to share free software with others. If you have a copy of some free software, you can give it to your friends, or publish it on your website, or bundle it with other software and share it as part of something bigger. You can also share your improvements to it \u0026ndash; then it\u0026rsquo;s better for everyone!\nYou can charge a fee to those you share the software with, for instance to cover the costs of bandwidth. Note however that the recipient is entitled to the right to share it themselves, without paying back any royalties. 3: Collaborate on the software The third freedom guarantees one additional right: the right to collaborate with others on improving the software. You can study, improve, and share the source code, and the people you share it with can study, improve, and share it right back with you. This is the foundation of the Free Software Movement: a global community of software enthusiasts sharing and improving software together.\nNext: Free software licenses ","link":"https://writefreesoftware.org/learn/four-freedoms/","section":"learn","title":"The four freedoms"},{"body":"The four freedoms are generally guaranteed through the use of a free software license. There are many different kinds of licenses with many different trade-offs to suit each software project\u0026rsquo;s unique situation.\nHow a free software license works A free software license grants the necessary rights, perhaps subject to some caveats (e.g. attribution), to establish the four freedoms for recipients of the software. Any software license can be a free software license if it upholds the four freedoms, but in practice most projects pick one of the many popular licenses established for general use. Information about these general-purpose software licenses and how to choose between them for your own projects are addressed in choosing a license.\nOften you will encounter a free software license in the \u0026ldquo;LICENSE\u0026rdquo; or \u0026ldquo;COPYING\u0026rdquo; file present in the software source code. Other projects, particularly those which combine software from many sources, have more complex ways of explaining their licensing situation. A common approach to managing this is the REUSE specification.\nIf you want to know more about how free software licenses work in detail, read on. Otherwise:\nNext: Getting involved Common traits of free software licenses To understand your obligations under any particular license, you will have to read it (and perhaps consult a lawyer, especially if you represent a business). However, most free software licenses have some traits in common with others, and you can get a simple understanding of them by learning about a few essential traits. Here are some common features of free software licenses:\nAttribution Attribution clauses require you to attribute the authors when distributing or reusing software based on a license with such a clause. This generally involves reproducing the license in full, or sometimes a simple copyright notice, when you distribute the software, modifications to it, or new software which incorporates some or all of the original software.\nHere\u0026rsquo;s an example from the MIT license:\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\nDisclaimer of warranty Free software is often provided as a gift. In exchange for this gift, you often are asked to agree to accept the software as-is, without any particular expectations of support or warranty from the publisher. This disclaimer of warranty is used to disclaim liability for free software, so the recipient is responsible for what they do with it.\nHere\u0026rsquo;s an example from the MIT license:\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\nCopyleft Some licenses don\u0026rsquo;t just permit you to share your improvements, but require that, if you share the software or software derived from or incorporating parts of the original, you can only do so by using the same license for your improvements. This is a copyleft license: a tool to protect free software from being incorporated into non-free works.\nHere\u0026rsquo;s an example from the Mozilla Public License 2.0:\nAll distribution of Covered Software in Source Code Form, including any Modifications that You create or to which You contribute, must be under the terms of this License. You must inform recipients that the Source Code Form of the Covered Software is governed by the terms of this License, and how they can obtain a copy of this License. You may not attempt to alter or restrict the recipients’ rights in the Source Code Form.\nCopyleft is covered in detail in What is Copyleft? License compatibility \u0026amp; sublicensing The ability to combine many works together is an essential trait of the free software ecosystem, but the use of many different copyright licenses can make this work more difficult. This is where sublicensing and license compatibility comes in: many free software licenses make provisions wherein they can be extended by the terms of additional licenses. This allows you to combine software with two or more compatible licenses to produce new software subject to the license terms of both.\nNot all licenses have terms which are compatible with one another; in particular copyleft licenses tend to be less compatible with others. Software with incompatible licenses cannot be combined into one work.\nYou can learn more about license compatibility in Re-using free software. Use of trademarks and patents Software licenses generally deal with copyright-related rights, but commercial software publishers often hold other kinds of intellectual property, such as trademarks and patents. Some free software licenses incorporate clauses which address the relationship between the software\u0026rsquo;s copyright grant and other intellectual property, for example agreeing that use of the software does not infringe on the copyright holder\u0026rsquo;s patents, or forbidding the use of the copyright holder\u0026rsquo;s trademarks.\nHere\u0026rsquo;s an example from the Apache 2.0 license:\nGrant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. ","link":"https://writefreesoftware.org/learn/licenses/","section":"learn","title":"Free software licenses"},{"body":"Copyleft is a licensing tool unique to free software. It is designed to encourage the proliferation of free software and protect free software from being incorporated into non-free works. This works by giving you not only the right to share your improvements, but the obligation to share your improvements under the same conditions when the software is distributed. It is very important to understand these obligations when re-using copyleft software in your own work.\nTerminology note: Conflating \u0026ldquo;copyleft\u0026rdquo; and \u0026ldquo;free software\u0026rdquo; is a common misconception: non-copyleft software can be Free Software, and Open Source software can be copyleft. However, those who identify more closely with the Free Software movement tend to favor copyleft licenses more than those who identify with the Open Source movement. The copyleft spectrum Different free software licenses exist along a spectrum from permissive to copyleft, based on the degree to which they emphasize copyleft in their license terms. Permissive licenses tend to allow generous reuse with relatively few and non-onerous obligations, such as simple attribution requirements. In contrast, copyleft licenses impose the obligation to share your changes and derived works under the same license terms.\nVarious software licenses and examples of projects which use them, organized on the copyleft spectrum. Original graphic by David A Wheeler, CC BY-SA 3.0. Why choose a copyleft license? It is common for permissively-licensed free software to be incorporated into non-free works. This is often done in the name of greater profits by denying the four freedoms to users who receive the non-free work, making profitable use of the software without giving anything back to the free software community.\nCopyleft licenses address some of these problems:\nCopyleft promotes the proliferation of free software and the four freedoms by ensuring that work built on top of free software grows and benefits the free software ecosystem. Copyleft ensures that those who improve or re-use free software share their changes with their users, so that the community can benefit from their improvements. Copyleft software can be sold, like all other free software, but requiring that commercial improvements remain free ensures the four freedoms are upheld by all participants. Furthermore, it is difficult to change the license of copyleft software if the copyright is held in aggregate, which serves as a strong promise for the future of the software as free software.\nWeak and strong copyleft Copyleft licenses differ in how strongly their copyleft clauses affect re-use of the software. For example, the weak copyleft Mozilla Public License is file-based, such that the copyleft clause covers individual source code files, and not the project as a whole: you can drop one of these files into any project without having to relicense the larger project, so long as you distribute any changes to those specific files under the same license terms.\nA somewhat stronger copyleft example is the GNU Lesser General Public License, which deals specifically with software libraries. These libraries are compiled into an aggregate software artifact, such as a shared object or static archive, and the copyleft terms applies to this entire artifact. However, when this is linked with a third-party program, the copyleft clause is not invoked. Stronger still is the GNU General Public License, which treats the completed program as the software artifact to which the copyleft clause applies.\nOn the far end of the copyleft spectrum are licenses like the GNU Affero General Public License, which extends the GPL to apply to software used over a network, such as databases, and considers end users of that software \u0026ldquo;recipients\u0026rdquo; of the software, who are thus entitled to receive the source code.\nHow to re-use copyleft works The simplest way to re-use copyleft works is to apply its license to your own work and distribute it accordingly.\nIf you do not want to do this, you can only use a copyleft work under the conditions permitted by its license, which will likely limit you to the use of weak copyleft works. For example, if your software depends on a library which uses the LGPL, you may use any license for your own work but need to share changes you make to the library itself when you distribute the software to third parties. If the software uses the GPL or AGPL, you will be more constrained in your approach. Read the license terms carefully and consult a lawyer if you are unsure how to proceed.\nFor more details, consult our page on re-using free software.\nThe Software Freedom Conservancy is an organization which, among other activities, pursues legal remedies for copyleft enforcement. To learn more about copyleft enforcement for your own projects, consult their resources. ","link":"https://writefreesoftware.org/learn/copyleft/","section":"learn","title":"What is copyleft?"},{"body":" \u0026ldquo;Free software\u0026rdquo; is software developed \u0026amp; published according to principles which respect the essential rights and freedoms of its users and authors — the freedom to use, study, improve, and share the software. The Free Software movement is a global community of software developers and users who collaborate to build software according to these principles.\nAny software is considered free software so long as it upholds the four essential freedoms:\nThe freedom to use the software for any purpose. The freedom to study and improve the software. The freedom to share the software. The freedom to collaborate on the software. Software which upholds these freedoms is free software. Software which does not is non-free.\nNext: The four freedoms What is \u0026ldquo;open source\u0026rdquo; software? Open Source is a movement similar to the Free Software movement. The movements differ mainly in their target audience: open source is more commercial in its focus, and free software is more about the users. Nevertheless, the two movements are closely related and often work together. Each movement provides a different view of software freedom, but in practice nearly all software which is considered free software is also considered open source and vice-versa. The Open Source definition and the four freedoms are almost completely compatible with one another.\nThe two movements as a whole are often referred to as \u0026ldquo;free and open source software\u0026rdquo;, or \u0026ldquo;FOSS\u0026rdquo;.\nGenerally speaking, all open source software is free software, and vice versa. You can learn more about Open Source at opensource.org.\nWhat is \u0026ldquo;source available\u0026rdquo; software? \u0026ldquo;Source available\u0026rdquo; software refers to any software for which the source code is available, which may or may not uphold the four freedoms. It might limit commercial use, restrict redistribution, prevent the user from modifying the software, and so on. All free and open source software is source available, but not all source available software is free software.\n\u0026ldquo;Source available\u0026rdquo; software is often non-free. ","link":"https://writefreesoftware.org/learn/","section":"learn","title":"About Free Software"},{"body":"Scores of free software projects are looking for help. No matter your area of expertise \u0026ndash; competence in any programming language, writing documentation, community management, marketing skills, design and art skills \u0026ndash; there\u0026rsquo;s a project out there which could use your help. Look at the tools you use every day: chances are that many of them are already free software.\nTheir communities are waiting to meet you! Find their chat rooms, internet forums, and other hang-outs and introduce yourself.\nThings to know When you submit improvements to free software, you will generally be expected to provide them under the terms of the software license the project is already distributed with. Review the license and ensure that you can agree to its terms when licensing your own contributions.\nIf you don\u0026rsquo;t own the work you are contributing (for example, you\u0026rsquo;re contributing on your employer\u0026rsquo;s time or equipment), you need to secure the authorization of the copyright holder. This also applies if you incorporate code from another free software project \u0026ndash; see re-using free software for more details.\nRegarding \u0026ldquo;Contributor License Agreements\u0026rdquo; Some projects will ask you to sign a \u0026ldquo;Contributor License Agreement\u0026rdquo;, or a similar document, when providing your contribution. It is important that you read it carefully. This document may be used to simply verify that you own the copyright over your change and have the right to contribute it. However, many of these agreements may also ask you to waive some of your rights, for example to permit the publisher to incorporate your changes into non-free versions of the software.\nYou are not obligated to waive your rights. Such agreements may be required for the original publisher to agree to incorporate your changes into their version of the software, and to distribute those changes on your behalf. However, you are always entitled to the right to distribute an improved version of the software yourself, independently of the original publisher.\nPublishers of free software are strongly discouraged from using Contributor License Agreements to manage their community contributions. For more details, see managing copyright ownership.\n","link":"https://writefreesoftware.org/learn/participate/contribute/","section":"learn","title":"Contribute to free software"},{"body":"There are many ways to get involved with the Free Software movement, including publishing your own free software projects, contributing to existing free software communities, organizing events and activism for the cause of free software, and more.\nLearn about contributingLearn about publishing\n","link":"https://writefreesoftware.org/learn/participate/","section":"learn","title":"Getting involved"},{"body":"Got a great idea for a new free software project and itching to publish it? Wonderful! Here are the steps:\nWrite it! Choose a software license Publish your project Build a community (optional) Writing your software We can\u0026rsquo;t help you much with this part, of course. However, one word of advice: publish early. Many new maintainers are hesitant to publish their code, worried that poor documentation, missing features, abundant bugs, or even just poor code \u0026ndash; it all needs to be fixed before it\u0026rsquo;s ready for the world. Not so! Releasing early is a crucial step for getting rapid feedback and is essential to attracting others to help. Get your code out there as soon as possible.\nChoosing a license Before you publish, however, you need to choose a free software license that suits your needs. You can write one yourself, but this is strongly advised against, even for big corporations that can hire a lawyer to help. There are plenty of licenses out there to suit every need, and we go over how to choose the right one for you in choosing a license.\nChoosing a license is required when publishing a free software project \u0026ndash; in the absence of a license your work is non-free. Your choice may also have significant long-term consequences for your project, so choose carefully. This is an important step.\nPublishing your project When you\u0026rsquo;re ready to publish your work, the easiest way is to upload it to a software forge. There are many to choose from, each offering numerous tools to make development and collaboration easier for you. Many of these software forges are themselves free software \u0026ndash; we recommend using these over the non-free alternatives. Here are a few suggestions to check out:\nCodeberg SourceHut You can also host your project on your own infrastructure. Something as simple as a tarball on a web server will do, but you can also run an entire software forge in your own datacenter if that\u0026rsquo;s better for your project.\nBuilding a community One of the chief advantages of publishing free software is that your community can get involved to help make it better than you can do alone. Managing your community is important to make sure that your software is the best it can be. We publish articles on a variety of subjects of interest to free software participants, including advice on community building and management. Check it out!\n","link":"https://writefreesoftware.org/learn/participate/publish/","section":"learn","title":"Publishing free software"},{"body":"Choosing a license is an important part of publishing your free software projects. There are many to choose from, and each has different trade-offs and implications for your project\u0026rsquo;s future. It can be difficult to change the license later, so you should consider it carefully at the start.\nHere are a few widely used free software licenses we recommend, and why you might choose them.\nOnce you pick a license, include it when sharing your software. The easiest way to do this is to copy the plain-text version into a file called \u0026ldquo;COPYING\u0026rdquo; in your source code repository. For more complex scenarios, we recommend the REUSE approach. Copyleft licenses Copyleft licenses are useful for ensuring that your software remains free. The use of copyleft requires anyone who makes improvements to your software to publish them under the same copyleft license, which ensures that you can incorporate their improvements back into your version. For more details, see What is copyleft?\nAdvantages Ensures your software remains free Encourages community contributions Promotes free software generally Disadvantages Less attractive to businesses Must consider license compatibility for reuse Recommended copyleft licenses License Use it for\u0026hellip; Copyleft approach Mozilla Public License 2.0 Libraries (allows vendoring) File-based GNU Lesser General Public License Libraries (disallows vendoring) Object-based GNU General Public License Executable programs Executable-based GNU Affero General Public License Networked services Network-based Permissive licenses Permissive licenses impose relatively few obligations on the recipient of your software. These licenses permit the software to be freely re-used and integrated into any other software project, including non-free software. It can be useful for projects which target commercial use or widespread adoption.\nAdvantages Permits easy re-use Encourages widespread adoption Attractive to business users Disadvantages Can be incorporated into non-free works Discourages community contributions Recommended permissive licenses We recommend the following permissive licenses:\nMIT license BSD 3-clause license Recommended for businesses For businesses publishing free software, it may be desirable to use a permissive-style license which includes considerations for trademark and patent rights. For this purpose we recommend the Apache 2.0 license.\nPublic domain Publishers who wish to enter their software into the public domain should note that a simple public domain dedication is not sufficient for international use. We recommend the following licenses, which provide public-domain-equivalent legal rights in a manner compatible with international laws:\nCreative Commons 0 Unlicense Licenses for other situations We have a separate page recommending licenses for non-software assets, such as multimedia:\nLicensing non-software assets\n","link":"https://writefreesoftware.org/learn/participate/choose-a-license/","section":"learn","title":"Choosing a license"},{"body":"Free software licenses are most suitable for licensing, well, software. However, free software projects often incorporate media which is not software in and of itself, such as artwork and documentation. Different licenses are recommended for these use-cases. We have some recommendations for licenses which are suitable for non-software media, are within the spirit of free software, and are compatible with free software licenses.\nCreative Commons Most multimedia assets \u0026ndash; images, audio, videos, writing, and so on \u0026ndash; are suitable for use with Creative Commons licenses, which include configurable options for traits such as copyleft and attribution. Note, however, that the -ND (no derivatives) and -NC (non-commercial) variants of Creative Commons licenses are incompatible with free software, and the use of these assets will limit the utility of your project within the free software ecosystem.\nOpen Data Commons Databases can be licensed under the Open Database License. The most prominent project using it is OpenStreetMap \u0026ndash; which in 2012 underwent a move from CC BY-SA. The new license was needed in part because in certain jurisdictions, databases may have additional protections in parallel to (or instead of) copyright.\nSimilarly to Creative Commons, Open Data Commons publishes a collection of licenses designed for different needs: copyleft, attribution and public domain dedication.\nHardware Hardware projects (schematics, HDL sources, etc.) are encouraged to use the CERN Open Hardware License. It comes in several variants: strongly and weakly reciprocal, as well as permissive.\nThe Open Source Hardware Association provides a number of resources such as guides, FAQs or logos. It also maintains a directory of existing Open Hardware projects and issues OSHW certifications for them.\nFonts The SIL Open Font License is recommended for distributing fonts in a manner compatible with free software.\nDocumentation Most projects don\u0026rsquo;t use a special license for their documentation. However, the GNU Free Documentation License is occasionally used for this purpose.\n","link":"https://writefreesoftware.org/learn/participate/assets/","section":"learn","title":"Licensing non-software assets"},{"body":"The nature of copyright ownership in free software bears clarifying. In the absence of a Contributor License Agreement or similar document (a practice we strongly recommend against), how do free software developers and publishers manage the legal rights associated with the software\u0026rsquo;s copyright?\nWho owns a free software project? When you contribute to a free software project, if you do not assign your copyright to someone else, you retain ownership over the intellectual property rights associated with your contribution. Your changes are then licensed to everyone else, including the other copyright holders, under the same terms as the license the project was distributed under in the first place.\nAs such, in most cases, the copyright for any free software project is held in aggregate by all of the people who have contributed intellectual property to it, who license it to users, and each other, with a free software license.\nEstablishing provenance It may be desirable for some projects, particularly commercial projects, to formally establish the following for each contribution:\nThe contributor owns the copyright for their contribution, or is authorized by the copyright holder to use it The contributor agrees to license their copyright under the terms of the project license If it is desirable for your project to formally establish provenance in this manner, we recommend the use of the Developer Certificate of Origin. Most projects facilitate this by asking authors to \u0026ldquo;sign-off\u0026rdquo; on their contributions. The Git version control system provides a means of indicating that a given contribution has been signed-off on with the \u0026ldquo;git commit -s\u0026rdquo; flag.\nChanging a project\u0026rsquo;s license You may at some point wish to change your project\u0026rsquo;s license.\nIf the project is licensed with a permissive license, generally speaking it is possible to sublicense the original project with a new license, and apply the new license to future changes. You will still have to comply with the original license terms, such as attribution, but future changes may be licensed under different terms. In this sense, changing the license is similar to starting a new project and incorporating the original codebase into it.\nHowever, if the project is licensed with a copyleft license, this is more difficult \u0026ndash; often impossible. This is an intended trait of copyleft licenses: it is necessary in order to prevent the project from being incorporated into non-free software. You cannot generally sublicense a copyleft project in the same way you can license a permissive project.\nIt is possible to change the license of a copyleft project, but you must either (a) secure the permission of all copyright holders, or (b) rewrite their contributions. This approach is also appropriate if you want to change a permissive license without being subject to its original terms (such as attribution), but this is usually not worth the effort considering the relatively non-onerous terms of permissive licenses.\nIt is for this reason that holding the copyright in aggregate among the contributors, rather than assigning copyright to a single entity, is recommended for copyleft projects: it strengthens the long-term security of the project\u0026rsquo;s free software status by making it more difficult to change it to a non-free license.\n","link":"https://writefreesoftware.org/learn/participate/copyright-ownership/","section":"learn","title":"Managing copyright ownership"},{"body":"One of the great advantages of free software is its potential for re-use. You can incorporate code from other free software projects into new projects, saving time and allowing you to build on the shoulders of giants. Of course, you have to respect the original project\u0026rsquo;s work, and that means complying with their free software license terms.\nAlways read the license carefully when incorporating someone else\u0026rsquo;s work into your own software. Incorporating permissive software into new works The main appeal of permissive software licenses is the ability to incorporate it into anything with relatively little obligation towards the copyright holders. Most permissive licenses require only that you include the license text, or even just a copyright statement, in your product. For free software projects which incorporate permissively licensed code into their work, meeting these obligations is usually as straightforward as including an additional license with your source code.\nWhen incorporating permissively licensed free software into non-free works, you must distribute the free software license and/or copyright attribution with your software. Many commercial users of permissively licensed free software include a menu somewhere in their product which enumerates the applicable software licenses, or include a printed version with the product. You will need to come up with a similar approach.\nIncorporating copyleft software into new works Copyleft software cannot be incorporated into non-free software. Most free software can be incorporated into copyleft software, and vice versa, if the licenses are compatible. As a general rule, most popular permissive licenses \u0026ndash; but not all \u0026ndash; are compatible with most popular copyleft licenses. Some copyleft licenses are compatible with other copyleft licenses (for instance, the Mozilla Public License 2.0 is compatible with the GNU family of licenses), but many are not. Any two projects which use the same copyleft license are compatible with each other and may share code freely.\nGNU maintains a list of licenses which are compatible and incompatible with the GPL family of copyleft licenses here. Incorporating permissive code into a copyleft project is straightforward if the licenses are compatible: see the previous section.\nThe inverse, incorporating copyleft software into a permissively licensed software project, is less straightforward. In this case, the combined work becomes subject to the terms of the copyleft license. Managing a mix of permissive and copyleft licenses in a single work is possible, but has important and meaningful implications for your project. This is strongly advised against for non-experts: don\u0026rsquo;t mix copyleft code into a permissive project unless you are prepared for the project to switch to a copyleft license. Managing many licenses and copyrights in one project Larger and more complex projects may incorporate software from many different sources with many different licenses and copyright holders. If this describes your project, we recommend that you consider applying the REUSE specification to your work.\n","link":"https://writefreesoftware.org/learn/participate/derived-works/","section":"learn","title":"Re-using free software"},{"body":"This website is itself free software. The source code for the content and layout is available on SourceHut, a free software development platform. Follow the link for information on how to contribute improvements! The website and its content uses the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license, a copyleft license.\nThe theme is based on the Hugo compose theme, which is free software licensed with the MIT license, copyright © 2020 Weru.\n","link":"https://writefreesoftware.org/learn/participate/this-site/","section":"learn","title":"Contribute to this website"},{"body":"The purpose of this website is to enrich the free software community by making it easier to participate and understand the principles and practices underlying the free software movement. We provide in-depth and accessible information regarding these topics to introduce new members to our movement, explaining what free software is and how free software works in accessible terms. This content has done a great job at on-boarding people into free software and even in helping existing members of the community find a deeper understanding of the movement.\nHowever, free software is participatory. We cannot promote its interests with a static presentation of text or a one-way dialogue from us to you. We want \u0026ldquo;we\u0026rdquo; to include you. To this end, we\u0026rsquo;ve set up a forum for the purpose of discussing free software at discourse.writefreesoftware.org, where all people, regardless of background, are welcomed and encouraged to be a part of a supportive, inclusive community of peers.\nIf you read the main articles on free software here and came away with questions or feedback, the Discourse is the right place to go (check the Site Feedback section). But, moreover, if you read these articles and came away wanting a deeper connection to a community, this is the place for you. Questions about how licenses work and which one is right for your project, discussions about the tools we use to build free software, information about funding opportunities for your project and help writing your grant applications \u0026ndash; it\u0026rsquo;s all here, and more importantly it\u0026rsquo;s a social place where we can build solidarity and friendships, which are the bedrock of a strong political movement.\nPlease sign up to join us, introduce yourself, and find a few discussions to participate in. The success of this community will depend on its early members taking an active role in building it \u0026ndash; so don\u0026rsquo;t be shy! We\u0026rsquo;re depending on you.\nFinally, a note on community safety. This is a moderated community and is an inclusive, safe space for all people regardless of background, race, sex or sexual identity, gender or gender expression, visible or invisible disability, nationality, level of experience, and so on. We have established a code of conduct and we expect people to participate compassionately and respectfully.\nWe are aware that the free software community as a whole is no exception to problems of representation and empowerment. Part of the purpose of our community is to establish powerful spaces where these problems are not present, and through this build strength and solidarity as the foundation of a stronger political movement for free software. To this end we are taking pains to establish a diverse and intersectional, but also compassionate and patient, team of moderators to oversee our community, with a political awareness that extends further than a simple understanding of free software liberation and includes solidarity against all struggles for liberation, particularly those which our movement has often left behind.\nWe\u0026rsquo;re looking forward to seeing you there!\n","link":"https://writefreesoftware.org/blog/community-discourse/","section":"blog","title":"A new community space for discussing free software"},{"body":"","link":"https://writefreesoftware.org/blog/","section":"blog","title":"Blog"},{"body":"","link":"https://writefreesoftware.org/tags/meta/","section":"tags","title":"meta"},{"body":"","link":"https://writefreesoftware.org/tags/","section":"tags","title":"Tags"},{"body":" We build software for everyone Free software is a global collaborative movement to build the world\u0026rsquo;s best software in a manner that respects the essential rights and freedoms of its users and authors — the freedom to use, study, improve, and share your software.\nWhat is free software?Get started\nPhoto by Flo Köhler, CC BY 3.0 ","link":"https://writefreesoftware.org/","section":"","title":"Write Free Software"},{"body":"I\u0026rsquo;m pleased to announce the publication of Write Free Software today! This website is a new resource for the Free Software community which aims to provide a comprehensive and accessible entry-point and reference for the free software movement. We aim to educate others on free software philosophy and practice, to help people understand why free software is important and how to put it into practice.\nCome here to learn things like:\nWhat is free software? How do free software licenses work? How does copyleft work? How to choose a free software license How to re-use free software And much more!\nThe main content area of Write Free Software provides a lot of useful informational resources about how free software works and how its principles can be applied, but that\u0026rsquo;s not all there is to free software. The blog, though it\u0026rsquo;s just getting started, will provide a lot more free-form resources to help maintainers and contributors better understand how to work effectively in free software.\nFuture topics for the blog include:\nBuilding and managing your free software communities Breakdowns of specific free software licenses Commercial participation in free software The importance of copyleft in practice Want to help with these or any other ideas? Consider writing for us!\n","link":"https://writefreesoftware.org/blog/introducing-writefreesoftware.org/","section":"blog","title":"Write Free Software: A comprehensive educational resource for the Free Software movement"},{"body":"","link":"https://writefreesoftware.org/tags/games/","section":"tags","title":"games"},{"body":"","link":"https://writefreesoftware.org/tags/publishers/","section":"tags","title":"publishers"},{"body":"This article was adapted and republished from Drew DeVault\u0026rsquo;s blog.\nVideo games are an interesting class of software. Unlike most software, they are a creative endeavour, rather than a practical utility. Where most software calls for new features to address practical needs of their users, video games call for new features to serve the creative vision of their makers. Similarly, matters like refactoring and paying down tech debt are often heavily de-prioritized in favor of shipping something ASAP. Many of the collaborative benefits of free software are less applicable to video games. It is perhaps for these reasons that there are very few commercial free software games.\nHowever, there are some examples of such games, and they have had a great deal of influence on gaming. Id is famous for this, having released the source code for several versions of DOOM. The Quake engine was also released under the GPL, and went on to be highly influential, serving as the basis for dozens of games, including time-honored favorites such as the Half Life series. Large swaths of the gaming canon were made possible thanks to the generous contributions of free software game publishers.\nPublishing free software games is also a matter of historical preservation. Proprietary games tend to atrophy. Long after their heyday, with suitable platforms scarce and physical copies difficult to obtain, many games die a slow and quiet death, forgotten to the annals of time. Some games have overcome this by releasing their source code, making it easier for fans to port the game to new platforms and keep it alive.\nWhat will your game\u0026rsquo;s legacy be? Will it be forgotten entirely, unable to run on contemporary platforms? Will it be source-available, occasionally useful to the devoted player, but with little reach beyond? Perhaps it goes the way of DOOM, living forever in ports to hundreds of devices and operating systems. Maybe it goes the way of Quake, its soul forever a part of the beloved classics of the future. If you keep the source code closed, the only conclusion is the first: enjoyed once, now forgotten.\nWith this in mind, how do you go about securing your game\u0026rsquo;s legacy?\nSource available: the bare minimum The bare minimum is to make your game \u0026ldquo;source available\u0026rdquo;. Be aware that this is not the same thing as making it free or open source software! Some of your famous peers in this category include Alien 3, Civilization IV and V, Crysis, Deus Ex, Prince of Persia, Unreal Tournament, and VVVVVV.\nThis approach makes your source code available to view and perhaps to compile and run, but prohibits derivative works. This is definitely better than leaving it closed source: it provides helpful resources for modders, speedrunners, and other fans; and devoted players may be able to use it as the basis for getting the game running on future platforms, albeit alone and unable to share their work.\nIf you choose a minimal enforcement approach, then some players might ultimately share their work, but you\u0026rsquo;re leaving them on tenuous legal grounds. I would recommend this if you\u0026rsquo;re very protective of your IP, but know that you\u0026rsquo;re limiting the potential second life of your game if you take this approach.\nCopyleft with proprietary assets The next step up is to make your game free software using a copyleft license, but refraining from extending the license to the assets — anyone who wants to get the source code working would either need to buy the game from you and extract the assets, or supply their own community-made assets. This is a popular approach among free software games, and gives you most of the benefits and few of the drawbacks. You\u0026rsquo;ll join the ranks of our DOOM and Quake examples, as well as Amnesia: the Dark Descent, System Shock, Duke Nukem 3D, and Wolfenstein 3D.\nGames like this enjoy a long life as their software is more easily ported to new platforms and shared with other users. DOOM runs on phones, digital cameras, ATMs, even toasters! Its legacy is secure without any ongoing commitment from the original developers. This also allows derivatives works — new games based on your code — though it may turn some developers away. Using a copyleft license like the GPL requires derivative works to also be made free software. The community generally has no problem with this, but it may affect the willingness of future developers to incorporate your work into their own commercial games. I personally think that the proliferation of free software that\u0026rsquo;s implied in the use of a copyleft license is a positive thing — but you may want to use another approach.\nPermissive license, proprietary assets If you want to allow your source code to find its way into as many future games as possible, a permissive free software license like MIT is the way to go. Flotilla is an example of a game which went with this approach. It allows developers to incorporate your source code into their own games with little restriction, either by creating a direct derivative, or by taking little samples of your code and incorporating it into their own project. This comes with no obligation to release their own changes or works in a similar fashion: they can just take it, with very few strings attached. Such an approach makes it very easy to incorporate into new commercial games.\nThis is the most selfless way to release your code. I would recommend this if you don\u0026rsquo;t care about what happens to your code later, and you just want to make it free software and move on. Though this will definitely enable the largest number of future projects to make use of your work, the copyleft approach is better for ensuring that the largest possible number of future games are also free software.\nOpen assets If you\u0026rsquo;re feeling especially generous, you could release the assets, too. Good licenses for this includes the Creative Commons licenses. All of them permit free redistribution of your assets, so future players won\u0026rsquo;t have to buy your game to get them. This could be important if the distribution platform you used is defunct, or if you\u0026rsquo;re not around to buy it from — consider this well before deciding that you\u0026rsquo;d rather keep your share of the dwindling asset sales as your game ages.\nUsing Creative Commons also allows you to tune the degree to which your assets may be re-used. You can choose different CC licenses to control the commercialization of your assets and use in derivative works. To allow free redistribution and nothing else, the CC NC-ND license (noncommercial, no derivatives) will do the trick. The CC BY-SA license is the copyleft of creative commons: it will allow free redistribution, commercialization, and derivative works, if the derivatives are also shared with the same rights. The permissive approach is CC-0, which is equivalent to releasing your assets into the public domain.\nPermitting derivatives and re-commercialization of your assets can save a lot of time for new game developers, especially indie devs with a small budget. It\u0026rsquo;s also cool for making derivative games, similar to modding, where creative players can remix your assets to make a new game or expansion pack.\nWhat if I don\u0026rsquo;t completely own my game? You can\u0026rsquo;t give away the rights to anything you don\u0026rsquo;t own. If you rely on proprietary libraries, or a third-party level editor, or you don\u0026rsquo;t own the rights to the music or sprites, you cannot make them free or open source.\nIn this situation, I recommend publishing everything that you\u0026rsquo;re able to as free software. This might mean that you publish an ultimately broken game — it simply might not work, or not even compile, without these resources. This is unfortunate, but by releasing everything you can, you leave your community in a good position to fill in the gaps themselves, perhaps by refactoring your code to work around them, or by replacing the proprietary bits with free alternatives. This also allows the parts of your game which are open to be reused in future games.\nBut cheaters could use it! This is true. And it\u0026rsquo;s worth noting that if your game has a mandatory online component based on your own servers, then making it free software doesn\u0026rsquo;t make nearly as much sense, especially if you ultimately decide to shut those servers off.\nThere is a trade-off to be made here. In truth, it\u0026rsquo;s very difficult to prevent cheating in your game. If you\u0026rsquo;ve made a popular competitive multiplayer game, you and I both know that there are still cheaters using it despite your best efforts. Keeping it proprietary is not going to stave off cheaters. Social solutions are better — like a system to report cheaters, or to let friends play on private servers.\nMaking your game free software might help less skilled script kiddie figure out how to cheat more easily in your game. I can\u0026rsquo;t decide for you if the trade-off is worth it for your game, but I can tell you that the benefits of making it open are vast, and the efficacy of keeping it closed to prevent cheating is questionable.\nBut my code is embarrassing! So is everyone else\u0026rsquo;s. 🙂 We all know that games are running up against tight deadlines and clean code is not going to be the #1 priority. I assure you that your community will be too busy having fun to judge you for the quality of your code. The idea that it just needs to be \u0026ldquo;cleaned up\u0026rdquo; first is the death of many projects which would otherwise have been made free software. If you feel this way, you will probably never be satisfied, and thus you\u0026rsquo;ll never open it. I assure you: your game is ready to be made free software, no matter what state it\u0026rsquo;s in!\nBonus: Ethan Lee tipped me off to some truly awful code which was left in VVVVVV, which you can freely browse on the 2.2 tag. It\u0026rsquo;s not great, but you probably didn\u0026rsquo;t know that — you only remember VVVVVV as a critically acclaimed game. Game developers are working under tight constraints and no one is judging them for that — we just want to have fun!\nSo what do I need to do? Let\u0026rsquo;s lay out the specific steps. You need to answer the following questions first:\nDo I actually own the entire game? What parts am I allowed to publish as free software? Will I make the code source-available, copyleft, or permissively licensed? And the assets? Proprietary? Creative Commons? If the latter, which version? If you\u0026rsquo;re not sure what\u0026rsquo;s best, I would recommend using the GPL for your code, and CC BY-SA for the assets. This allows for derivative works, so long as they\u0026rsquo;re also made open with a similar license. This enables the community to build on your work, porting it to new platforms, building a thriving modding community, and freely sharing your assets, ensuring an enduring legacy for your game. If you\u0026rsquo;d like to decide the details for yourself, review the comments above once again and pick out the licenses you\u0026rsquo;d like to use for each before moving on.\nIf you need help with any of these steps, or have any questions, please send me an email, and I will help you to the best of my ability.\nPublishing the source code\nPrepare an archive of your source code, and add the license file. If you went with the source-available approach, simply write \u0026ldquo;Copyright © \u0026lt;you\u0026gt; \u0026lt;current year\u0026gt;. All rights reserved.\u0026rdquo; into a text file named LICENSE. If you chose something else, copy the license text into a LICENSE file.\nIf you want this over with quickly, just stick the code and license into a zip file or a tarball and drop it on your website. A better approach, if you have the patience, would be to publish it as a git repository. If you already use version control, you may want to consider carefully if you want to publish your full version control history — the answer might be \u0026ldquo;yes\u0026rdquo;, but if you\u0026rsquo;re unsure, the answer is probably \u0026ldquo;no\u0026rdquo;. Just make a copy of the code, delete the .git directory, and import it into a new repository if you need to.\nDouble check that you aren\u0026rsquo;t checking in any artifacts — assets, executables, libraries, etc — and then push it to the hosting service of your choice. GitHub is a popular choice, but I would selfishly recommend sourcehut as well. If you have time, write a little README file which gives an introduction to the project as well.\nPublishing the assets\nIf you choose to leave the assets proprietary, then there are no further steps. Players can figure out how to extract the assets from their purchased game.\nIf you choose to make them open, prepare an archive of your assets. Include a copy of the license you choose — e.g. which Creative Commons license you used — and drop it into a zip file or a tarball or something similar. Stick this on your website, and if you\u0026rsquo;re feeling generous, prepare some instructions for how to incorporate the asset bundle into the game once a player compiles your code.\nTell the world!\nLet everyone know that you\u0026rsquo;ve made your game free software! Write a little blog post, link to the source and assets, and enjoy a little bit more of the limelight while the press and the community thanks you for your contribution.\nOne final request on this note: if you choose the source-available approach, please refer to it as such in your public statements. Source available is not the same thing as \u0026ldquo;free software\u0026rdquo; or \u0026ldquo;open source\u0026rdquo;, and the distinction is important.\nAnd now it\u0026rsquo;s my turn to thank you: I\u0026rsquo;m so happy that you\u0026rsquo;ve released your game as free software! The community is much richer for your contribution to it, and I hope that your game will live on for many years to come, both in self through ports and mods, and in spirit through its contributions to future games. You\u0026rsquo;ve done a wonderful thing. Thank you!\n","link":"https://writefreesoftware.org/blog/free-software-games/","section":"blog","title":"The complete guide to publishing free software video games"},{"body":"","link":"https://writefreesoftware.org/categories/","section":"categories","title":"Categories"},{"body":"Our Pledge We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, color, religion, or sexual identity and orientation.\nWe pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.\nOur Standards Examples of behavior that contributes to a positive environment for our community include:\nDemonstrating empathy and kindness toward other people Being respectful of differing opinions, viewpoints, and experiences Giving and gracefully accepting constructive feedback Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience Focusing on what is best not just for us as individuals, but for the overall community Examples of unacceptable behavior include:\nThe use of sexualized language or imagery, and sexual attention or advances of any kind Trolling, insulting or derogatory comments, and personal or political attacks Public or private harassment Publishing others\u0026rsquo; private information, such as a physical or email address, without their explicit permission Other conduct which could reasonably be considered inappropriate in a professional setting Enforcement Responsibilities Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.\nCommunity leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.\nScope This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.\nEnforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at conduct@writefreesoftware.org. All complaints will be reviewed and investigated promptly and fairly.\nAll community leaders are obligated to respect the privacy and security of the reporter of any incident.\nEnforcement Guidelines Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:\n1. Correction Community Impact: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.\nConsequence: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.\n2. Warning Community Impact: A violation through a single incident or series of actions.\nConsequence: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.\n3. Temporary Ban Community Impact: A serious violation of community standards, including sustained inappropriate behavior.\nConsequence: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.\n4. Permanent Ban Community Impact: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.\nConsequence: A permanent ban from any sort of public interaction within the community.\nAttribution This Code of Conduct is adapted from the Contributor Covenant, version 2.1, available at https://www.contributor-covenant.org/version/2/1/code_of_conduct.html.\nCommunity Impact Guidelines were inspired by Mozilla\u0026rsquo;s code of conduct enforcement ladder.\nFor answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.\n","link":"https://writefreesoftware.org/conduct/","section":"","title":"Code of Conduct"}]