Help! Understanding Free and Open-Source Licenses

Hey everyone, I’m diving into the world of free and open-source software (FOSS), and I’m a bit confused about the different licenses involved. I’ve seen terms like “free,” “open-source,” and various license names like MIT and GPL, but I’m not entirely sure what the nuances are between them.

Here’s what’s really got me scratching my head: why is the source code not always included with some FOSS licenses? I thought the whole point of open-source was that anyone could see and modify the code, but that doesn’t seem to be the case for everything.

I’d really appreciate any insights you all could share! Any explanations of the different license types, examples of how they differ, and why some licenses might not include the source code would be incredibly helpful.

Thanks in advance for your help!

P.S. If you have any resources that explain FOSS licenses in a user-friendly way, please feel free to share them as well!

1 Like

Hello! To find the official definition of Open Source look here: The Open Source Definition – Open Source Initiative

It should be (in some cases it must be provided upon request).

MIT license means that anyone can use the code for anything they want – no restrictions. GPL means that all projects that use the license must also license their code under the GPL (as well as conforming to a few other rules). MIT is a permissive license while GPL is a copyleft license.

See more here: Open-source license - Wikipedia

1 Like

If you are an end user like me who do not know how really code, it doesn’t really matter. What matters is for other people being able to see and audit the code and hopefully the binary it produces turns out to be reproducible, meaning if anyone could compile it and still produce the same bit for bit binary code output. And if you do code, you can still sort of reverse engineer it especially with the help of coding AIs out there, so direct copy and pasting from other repos is no longer even needed.

A lot of licenses out there is due to ideological differences whether the code can be shared with companies that would like to have money making capabilities. Some people do not want their code to be monitizable and just want to be a community effort.

Licenses can still be changed from one to another depending on the source code owner/s whim. Things can change.

In the end licenses don’t really matter. Dont over sweat it. I’d argue its purely on the domain of lawyers and corporations.

1 Like

Open source licenses must allow the code to be monetized per the OSI’s definition

I disagree. I feel that software freedom is something that is important for everyone as it also encourages innovation and (as you stated) allows the code to be auditable.


Disagree. VS Code is MIT licensed, so no issues right? Wrong - it’s rebundled with proprietary telemetry by Microsoft. What we probably want to use is VSCodium, which is the strict MIT build.

GPL software requires source code be available on request, meaning that the executable you are running you can have the source code. The above scenario is now illegal with this license, as Microsoft can’t bundle their own proprietary modules in the binary. I won’t go into the details of GPLv2 and v3, as that likely isn’t a concern.

AGPL takes it further and states that if you interact with the program over a network, the source code must be provided. So if you interact with a site running AGPL, you can audit what it does on the server. If I interact with AGPL software on the web (I.e. I believe Invidious is AGPL), then I have greater confidence in the site that is running it. Nothing will stop bad actors from uploading malicious software and pretend it’s fine, but there is at least some legal protection.

The confusion around OSI lead to copy left software to be called libre software, as free (as in user freedom) and open source has been co-opted to mean all open source licenses (free as in no cost), confusingly.


With that, any version of open source is greatly appreciated. Just double check if you have a non restrictive version of a program you are making sure it’s the build from original source and not rebundled with fun extras.

Might help by giving an example.

Another big distinction is copyleft (GPL, AGPL, MPL) vs permissive (BSD, MIT, Apache).

Copyleft requires all forks to keep the same license or a compatible free license, thereby ensuring that the code will always remain free and open source. Permissive licenses basically say “here’s the code, do what you want” and others can “steal” the code to use it in a proprietary project without contributing back.

1 Like