This is an automatic translation generated by artificial intelligence. May contain errors.
Any member of the university community may wish to release as free software a program they have developed. This guide explains how to do so.
[Clarification: The word “program” in this guide refers to a computer program, or part of one. It can therefore refer to a complete program as well as to a library or module.]
How to release free software
If you decide to release a program as free software, the steps to follow are:
- Verify that you hold the intellectual property rights to the program.
- Choose the software distribution license.
- Mark the software as free software.
- Publish the software.
Let us look at these steps in more detail.
Intellectual property verification
The first step is to ensure that you hold the intellectual property rights to the program. You can only release the program and do so under the license of your choice if you own the intellectual property rights to it.
There are some cases where this is clear:
- If you are a student and have developed your program with reasonable independence. In particular, if you have created programs on your own for your Final Degree Project.
If you have doubts about the intellectual property rights to the program, consult OfiLibre.
License selection
The next step to release your program as free software is to choose a free software license.
Whoever holds the intellectual property rights to a program has all rights over it. Whoever receives that program can only exercise the rights granted by its owner. Whoever receives the program cannot reproduce it, redistribute it, or create derivative works (such as fixing a bug or adding functionality), for example, unless they obtain permission from the author.
In the case of releasing as free software, the license is the text that indicates which permissions you are granting to whoever receives your program, automatically and without them having to ask you for specific permission. In general, these permissions will include those detailed in the most common definitions of free software: the Free Software Definition and the Open Source Definition.
For example, the Free Software Definition states:
“Free software” is software that respects the freedom of users and the community. Broadly speaking, it means that users have the freedom to run, copy, distribute, study, modify and improve the software.
There are many licenses that meet these definitions. Among them, some of the most common are:
- GNU General Public License (GPL)
- GNU Lesser General Public License (LGPL)
- Apache License
- MIT License
- BSD License
You can also consult the list of all licenses recognized by OSI.
Marking with the chosen license
Once we know which license we are going to use, we need to mark the program with that license. To do this, the source code is normally marked in several ways:
- Placing in the headers of all source files a text that refers to the license. It is considered good practice to use the SPDX identifier of the license, which can be obtained, for example, from the license description in the OSI license list. For example, in the first lines of a Python file:
# Copyright 2022 Pepita Menganez
# SPDX-License-Identifier: GPL-3.0
-
In the main directory of the program’s source code, include a
LICENSE
file with the license text. -
If the program has a user interface, include in it some way to indicate the license. For example, if it has a menu-based graphical user interface, you can add a menu option “About” that displays, among other information, the distribution license.
And with this we will be ready for the last step.
Publication
The process ends with the publication of the program. Nowadays it is common to publish the project on GitHub or GitLab, but any site that intends to remain over time and that is archived by collectors such as Software Heritage can serve.
In case the software accompanies a paper, a Final Degree Project report, or any other document, it will be convenient to include the link (URL) to the repository where you have deposited it in that document.
More information
This guide is only a very brief summary of some essential steps to release free software. You can delve deeper into the topic of releasing programs as free software in the following documents:
- Starting an open source project (Open Source Guide)
- Starting an open source project (Linux Foundation)
There are also countless examples of programs released as free software where you can see how they have done it. Just to mention one: