# Open Source 101
---
## Warnings
- I am not a lawyer, and this does not constitute legal advice.
- I do have a lot of Opinions:TM: and biases about this topic.
- Here's one Opinion: many of the big Open Source advocates are [awful human beings](https://drewdevault.com/weird-guys/), but Open Source Software is still a good idea.
---
# What is "Open Source"
---
## Open source is a community and a movement
---
- Beginning in the 1980, prominent figures in the early software development community did not like the direction of proprietary corporate software.
- This culminates in [Richard Stallman](https://stallman-report.org/) founding GNU and starting the [Free Software](https://www.gnu.org/philosophy/free-sw.html#four-freedoms) Movement
- Free software takes a very libertarian view of what software should be like, influencing and influenced by the strong libertarian bent in hacker culture.
---
## Free Software vs Open Source
- In the 1990s, there is a rift in the Free Software Movement, and [Eric S. Raymond](https://en.wikipedia.org/wiki/Eric_S._Raymond#Political_beliefs_and_activism) coins the term "Open Source" as a more corporate friendly version of these ideas
- He goes on to found the [Open Source Initiative](https://opensource.org/), which endorses some licenses
- This is a [rift](https://gcc.gnu.org/legacy-ml/gcc/2014-01/msg00247.html) still into today.
---
## Lots of good software
- Beyond the politicking and the awful leaders, there's a lot of dedicated hackers writing cool stuff and giving it away for free.  This is the heart of the open source community, and it enables nearly all of the modern internet. 
- I probably sound snarky right now, but genuinely this is an awesome thing even if it is not always used for good
---
## Open source is a family of licenses
- A way of distributing software that allows users to to read and modify the source code
- As opposed to "closed source" which grants permission to use software, but not modify or (usually) even read the code.
- There are a *lot* of open source and open source adjacent licenses
---
# What is a license?
---
### Buying software is not like buying a book
- When you buy a book, you are getting a physical object that you can read, sell, give away, highlight or take notes in, or even use to prop up a wobbly table.
- When you buy software, on the other hand, there's often no physical object. Typically you are buying a license to use the software for a particular purpose. That's what, for example, an EULA (End User License Agreement) is.
---
### Licenses are a contract
- Licenses are a kind of contract between you and the person or corporation who owns the copyright to the software.
- The license entirely decides what you are allowed to do with the software.
- Contract law is, by and large, extremely flexible.
- So, unsurprisingly, there are a huge variety of software licenses.
---
## Types of Open Source Licenses
- Permissive Licenses (e.g. [BSD](https://opensource.org/license/bsd-3-clause), [Apache 2](https://www.apache.org/licenses/LICENSE-2.0), [MIT](https://mit-license.org/))
- Copy Left Licenses (e.g. [GPL](https://www.gnu.org/licenses/gpl-3.0.en.html), [SSPL](https://www.mongodb.com/legal/licensing/server-side-public-license))
- "Specialty" Licenses (e.g. [NASA open source agreement](https://www.nasa.gov/wp-content/uploads/2025/08/nasa-open-source-agreement-1-3.pdf?emrc=575464))

---
## Commonalities
Most open source licenses include:
- The right to use the software
- The right to redistribute the software
- The right to modify the software and to redistribute any modifications
- A disclaimer of warrantee 
---
## What's the difference?
- Basically, it has to do with how you're allowed to redistribute modifications
- Permissive licenses let you distribute things you've built with the software however you want, including in a closed source program.
- Copy left licenses require that things you've built with the software must be distributed under the same (or a "compatible") license.
---
# Let's look at some popular and common licenses
---
## The BSD License
The ["3-clause" BSD license](https://opensource.org/license/bsd-3-clause) is fairly easy to read.  It allows software under that license to be redistributed, as a binary or source, provided the original copyright & license notice are included and the copyright holder's name isn't used as an endorsement.

---
## The MIT License
The [MIT License](https://mit-license.org/) is also easy to read, and provides very similar protections to the BSD license.  I'm honestly hard pressed to say what the practical difference is between BSD and MIT.

--- 
# Apache 2
The [Apache License Version 2](https://www.apache.org/licenses/LICENSE-2.0) reads much more like "legalese" than either MIT or BSD.  It's probably the most corporate friendly license currently in use, in part because it also covers related patents. 

The Apache Software Foundation maintains this license.

---
## The GPL
The [Gnu General Public License v3](https://www.gnu.org/licenses/gpl-3.0.en.html) is a "viral" license, which is to say that derivative work must be distributed under the GPL. It's complicated, and there's a huge [FAQ](https://www.gnu.org/licenses/gpl-faq.html) about using it.  The GPL family of licenses require that if you distribute a binary, you also make the source code available.

---
## The AGPL
The [GNU Affero General Public License v3](https://www.gnu.org/licenses/agpl-3.0.html) is very similar to the "standard" GPL, with an additional clause stating that granting access to the application on a server counts as distribution, and if you do so you must make the source for it available.

---
## The SSPL
The [Server Side Public License](https://www.mongodb.com/legal/licensing/server-side-public-license) is similar to the AGPL, but stronger requirements for what constitutes distributing over a network and what parts of the infrastructure must be open.

The OSI calls the SSPL a proprietary, source-available license, [not an open source license](https://opensource.org/blog/the-sspl-is-not-an-open-source-license), because it places restrictions on how the software may be used.

---
## Creative Commons Licenses
The [Creative Commons](https://creativecommons.org/) provides a family of licenses that explicitly allow reuse, but designed for more "traditional" media. For things like documentation, art, writing, etc, these are better suited than an open source software license.

---
# How to get involved
---
## Open source personal projects
- If you're working on something for fun, consider putting it under an open license (I suggest MIT or AGPL) and share it around
- This is especially good for little helper tools, like editor plugins or terminal helpers. Someone else might find it helpful too.
---
## Contribute to other projects
- If there's some software you use or find interesting, see if there's open issues you might be able to address. Even if it's just fixing a typo.
- Or if there's some feature you've always wanted on a tool you use, try to add it and contribute it back
- If you're unsure about using `git` or GitHub, I'd be happy to help you get started
---
## Help build a better community
- Early open source was full of pretty shitty people. It was led by libertarian misogynists, and they tended to attract more of the same.
- It's getting better, but slowly. 
- My dream is to see a new wave open source movement rooted instead in solidarity, accessibility, and equity.
---
# Questions?
---
