Software by licence and purpose¶
Exercise software-by-licence-and-purpose-annex.pdf · PDF
Since September you have installed dozens of programs: Debian, Windows 11, Git, Samba, LibreOffice, WinBox... Quick question: which of them are you allowed to copy for a friend? Which can you change? And which ones are you only renting? If your answer is "the ones I didn't pay for are free", this page is for you.
Yesterday you handed over the Tramuntana office server. A server nobody understands is a server nobody can repair, so Unit 7 has one product: a documentation repository for that server — text files, kept under version control, that build a PDF. Today you write one piece of it: the table of software it runs, each line with its licence. And every answer comes with proof.
What you will learn
- Recall the four freedoms and tell copyleft from permissive licences
- Classify any program on two independent axes: its licence and its purpose
- Explain why SaaS is a way of delivering software, not a licence
- Tell open source from source-available, and free software from freeware
- Prove a classification with the
copyrightfile of a Debian package or the project's own licence page - Why a project with no licence is not "free for all" — it is the opposite
Back to October: the four freedoms¶
You met licences in Unit 2 — the full story is on Software licences. Here is the short version you need today.
A licence is the document that says what you may do with a program: run it, copy it, change it, share it.
Free software gives you four freedoms, numbered from 0 (programmers count from zero):
| Freedom | You may... |
|---|---|
| 0 | Run the program for any purpose |
| 1 | Study how it works and change it |
| 2 | Share copies with others |
| 3 | Share your changed versions |
Freedoms 1 and 3 need the source code — the human-readable text the program was written in. Without it, "change it" is just a promise on paper.
Free licences come in two flavours:
- Copyleft (GPL): you may change it, but a version you share must keep the same licence. Freedom is contagious.
- Permissive (MIT, Apache 2.0): almost no conditions. Your changed version may even become closed.
Careful: free means freedom, not price
"If I don't pay for it, it is free software" is false. Free here is about what you are allowed to do, not about the price. A company may even sell free software. Hold on to this; it is the trap of the whole page.
Two axes, not one¶
Every program has a place on two axes, and they do not depend on each other. Knowing one tells you nothing about the other.
Axis 1: purpose — what is it for?¶
| Purpose | What it is for | Examples from this course |
|---|---|---|
| System software | Makes the machine usable and manages it: operating system, drivers, firmware, utilities | Debian, Windows 11, the Linux kernel, GRUB, RouterOS |
| Application software | Does a job for the person using it | LibreOffice, Firefox, a design suite, a hotel booking program |
| Development software | Tools to build other software | Git, an editor or IDE, compilers, Podman |
Back in the Unit 1 kitchen
The kitchen still works. System software is the kitchen itself and its manager. Applications are the dishes that go out to the tables. Development software is the set of knives and moulds used to invent new dishes.
Axis 2: licence — what may you do with it?¶
| Licence family | What you may do | Examples |
|---|---|---|
| Free / open source · copyleft | The four freedoms; shared changes keep the same licence | Linux kernel (GPL-2.0), Git, Samba, Bash |
| Free / open source · permissive | The four freedoms; almost no conditions | Podman and Typst (Apache 2.0), VSCodium (MIT) |
| Proprietary, paid | Only what the contract says; no source code | Windows 11, a commercial design suite |
| Proprietary, free of charge (freeware) | Use it for nothing; you cannot study or change it | WinBox, most phone apps |
Put both axes together and you get a grid. Git lands in development · copyleft. WinBox lands in system utility · freeware. Windows 11 lands in system · proprietary, paid.
flowchart LR
P["<b>A program</b>"] --> Q1{"<b>Purpose?</b><br>what is it for"}
P --> Q2{"<b>Licence?</b><br>what may I do"}
Q1 --> S["System"]
Q1 --> A["Application"]
Q1 --> D["Development"]
Q2 --> C["Copyleft"]
Q2 --> PE["Permissive"]
Q2 --> PP["Proprietary, paid"]
Q2 --> F["Freeware"]
Four words that get mixed up¶
Open source¶
Open source is software whose licence meets the Open Source Initiative's definition: you may use, study, change and share it.
The name was proposed in February 1998 by Christine Peterson; the Open Source Initiative keeps a definition with 10 criteria. The older name, free software, comes from the GNU project (announced in 1983) and the Free Software Foundation (founded in 1985). Two names, two motivations, but in practice one list of licences and nearly the same programs.
Source-available¶
Source-available software lets you read the code, but its licence restricts what you do with it.
Reading is not enough to be open source. A true story: on 10 August 2023 the company HashiCorp moved its tool Terraform from an open source licence (MPL 2.0) to the Business Source License, whose own text says it is not an open source licence. Within six weeks the community announced a fork — a copy of the project that continues on its own — called OpenTofu, under the Linux Foundation.
The lesson: the owner can change the licence of the next version. The versions already published keep the licence they had. That is exactly why the fork was legal.
SaaS¶
SaaS (Software as a Service) means you install nothing: the program runs on the provider's computers and you use it through a browser or an app.
You rent access, usually per user per month. Google Docs and Figma are SaaS.
Careful: SaaS is not a licence
SaaS tells you where the program runs and how you pay, not what the licence allows. What runs on the provider's side can be proprietary (Figma) or free software (Codeberg runs the free program Forgejo). Always ask two separate questions: Where does it run? and What does the licence allow?
No licence¶
A project on the Internet with no licence file is not public. By default the author keeps exclusive copyright: nobody else may copy, change or share it. You may only look.
Proof, not opinion¶
A label without proof is a guess. Here is where the proof lives.
For anything installed with apt on deb-lab, every Debian package ships a copyright file:
On Debian 13 the second command prints:
Git is under the GPL version 2: copyleft. Try the same with bash and you get GPL-3+ (version 3 or any later one).
For programs that are not Debian packages, the proof is the licence page on the project's own website, or the LICENSE file in its repository. A blog post is not proof.
Here is how the software of this course classifies, with the proof for each line:
| Program | Purpose | Licence family · licence | Proof |
|---|---|---|---|
| Debian 13 | System | Free software; each package has its own licence | debian.org (social contract, free software guidelines) |
| Linux kernel | System | Copyleft · GPL-2.0 only | kernel.org licence rules |
| Windows 11 | System | Proprietary, paid · OEM, retail or volume | Settings → System → About, or winver |
| RouterOS | System | Proprietary · licence level bought with the device | MikroTik docs, RouterOS license keys |
| Bash | System | Copyleft · GPL-3+ | /usr/share/doc/bash/copyright |
| Samba | System | Copyleft · GPL-3 | samba.org, or the copyright file on ubu-srv |
| LibreOffice | Application | Free software, weak copyleft · MPL-2.0 | libreoffice.org → About us → Licenses |
| Google Docs | Application | Proprietary · delivered as SaaS | Google terms of service |
| Git | Development | Copyleft · GPL-2 | /usr/share/doc/git/copyright |
| Podman | Development | Permissive · Apache 2.0 | /usr/share/doc/podman/copyright or its repository |
| Visual Studio Code | Development | Microsoft's download is proprietary and free of charge; its source (Code-OSS) is MIT | VS Code FAQ on code.visualstudio.com |
| WinBox | System (utility) | Freeware | mikrotik.com download page: no source offered |
Careful: Debian is not 'licensed under Linux'
Debian is a collection of thousands of packages, each with its own licence. Its main archive only accepts free software. And "Linux" is the name of the kernel, not of a licence.
The purpose axis has fuzzy borders: Podman could be system or development, an editor could be application or development — defend your choice. The licence axis has no fuzzy borders: the file says what it says.
The hard cases¶
VS Code: one code, two faces¶
The source code of Visual Studio Code is open, under MIT. But the installer most people download is a Microsoft product under a proprietary licence. VSCodium is that same source built and distributed under MIT. So "open source" describes the licence of a specific thing you have in your hands, not a brand.
RouterOS: proprietary on top of free¶
RouterOS runs on a Linux kernel, and the product is proprietary. That is allowed: a proprietary product can be built on top of free software as long as it respects the licences of the parts.
Your documentation needs a licence too¶
The repository you start next week is a creative work. With no licence, nobody may reuse it. Software licences (GPL, MIT) are written for code. For text, the usual choice is a Creative Commons licence, for example CC BY-SA 4.0: anyone may share and adapt it, as long as they name the author and keep the same licence. Creative Commons itself recommends against using its licences for software.
You will add a LICENSE file to your repository. Decide which one before the Docs as code session.
Key takeaways¶
- Every program sits on two independent axes: purpose (system, application, development) and licence (copyleft, permissive, proprietary paid, freeware).
- Free software is about freedom, not price: freeware costs nothing and is still proprietary.
- Open source means you may use, study, change and share; source-available only lets you read.
- SaaS says where software runs and how you pay — the licence is a separate question.
- No licence means exclusive copyright: you may only look.
- A classification needs proof:
/usr/share/doc/<package>/copyrightor the project's own licence page.
Quick check¶
1. What does the word SaaS tell you about a program?
- Where it runs and how you pay for it
- Which licence it is distributed under
- That its source code is public
- That it costs nothing to use
SaaS is a way of delivering software: it runs on the provider's computers and you rent access, usually per user per month. The licence is a separate question — Figma is proprietary SaaS, Codeberg runs free software.
2. A program costs nothing, and its source code is secret. What is it?
- Freeware
- Free software
- Open source
- Copyleft
Freeware is proprietary software that is free of charge. Without the source code you cannot study or change it, so freedoms 1 and 3 are missing: it is not free software.
3. You find a project on the Internet with no licence file. What may you do with it?
- Only look at it: the author keeps all rights
- Copy it, as long as you name the author
- Change it, but only for yourself
- Anything you like, because it is public
With no licence, the author keeps exclusive copyright by default. Nobody else may copy, change or share the work.
4. Where would you place Git on the two axes?
- Development software, copyleft
- Application software, permissive
- System software, proprietary
- Development software, freeware
Git is a tool to build software, so it is development software. Its Debian copyright file says License: GPL-2, a copyleft licence.
5. What does source-available mean?
- You can read the code, but your use of it is restricted
- Exactly the same as open source
- The code is in the public domain
- The program is sold together with its source
Source-available code is visible, but the licence limits what you may do — Terraform under the Business Source License is the example. Open source also requires the freedom to change and share it.
6. On deb-lab, which command proves the licence of the installed bash package?
- grep -m1 "^License:" /usr/share/doc/bash/copyright
- grep -m1 "^License:" /etc/bash/licence
- bash --licence-file
- less /usr/share/doc/bash/README
Every Debian package ships a copyright file in /usr/share/doc/<package>/. For Bash it says GPL-3+: copyleft, version 3 or any later one.
7. Microsoft builds VS Code from source code licensed under MIT, but distributes its own download under a proprietary licence. Select the two that are true.
- Open source describes the licence of a specific thing, not a brand
- VSCodium builds that same source and distributes it under MIT
- Using the Microsoft download makes your own code open source
- A permissive licence forbids companies from making closed products
The source (Code-OSS) is MIT, a permissive licence, which is precisely what lets Microsoft ship a proprietary product from it. VSCodium is the same source distributed under MIT. The label belongs to what you actually downloaded.
Now that you can label software, the next step is choosing it — for a studio, a school and a hotel, and counting what it really costs: Software needs in real workplaces.