425 lines
11 KiB
Typst
425 lines
11 KiB
Typst
#import "@preview/polylux:0.4.0": *
|
||
#import "@preview/rubby:0.10.2": get-ruby
|
||
|
||
// Make the paper dimensions fit for a presentation and the text larger
|
||
// #set page(paper: "presentation-16-9", fill: rgb("#010206"))
|
||
#set page(width: 297.0mm * 2,height: 168.0625mm, fill: rgb("#010206"), columns: 2,
|
||
background: [
|
||
#place(
|
||
top + left,
|
||
rect(
|
||
width: 50%,
|
||
height: 100%,
|
||
fill: rgb("#010206"),
|
||
)
|
||
)
|
||
#place(
|
||
top + right,
|
||
rect(
|
||
width: 50%,
|
||
height: 100%,
|
||
fill: rgb("#1e1b30"),
|
||
)
|
||
)
|
||
])
|
||
#set columns(gutter: 4%)
|
||
#set text(size: 18pt, font: "TX-02", fill: rgb("#EBF6ff"), fallback: true,weight: 400)
|
||
#set align(top)
|
||
#let sections-band = toolbox.all-sections( (sections, current) => {
|
||
align(left)[
|
||
#box(
|
||
width: 50%,
|
||
{
|
||
set text(fill: gray, size: .8em)
|
||
sections
|
||
.map(s => if s == current { strong(s) } else { s })
|
||
.join([ • ])
|
||
}
|
||
)
|
||
]
|
||
})
|
||
#let ruby = get-ruby(
|
||
size: 0.5em, // Ruby font size
|
||
dy: 0pt, // Vertical offset of the ruby
|
||
pos: top, // Ruby position (top or bottom)
|
||
alignment: "center", // Ruby alignment ("center", "start", "between", "around")
|
||
delimiter: "|", // The delimiter between words
|
||
auto-spacing: true, // Automatically add necessary space around words
|
||
)
|
||
#show link: underline
|
||
|
||
|
||
// Use #slide to create a slide and style it using your favourite Typst functions
|
||
#slide[
|
||
#set align(horizon)
|
||
#set align(center)
|
||
= \*Notices your Software\*
|
||
|
||
== _OwO is this under a Free, Libre, \
|
||
and Open Source license?_
|
||
|
||
\
|
||
A crime against legal systems, good writing,\ and Richard Stallman himself
|
||
|
||
\
|
||
By Mira Volitaris (ArgentumCation)
|
||
|
||
2025-09-19
|
||
|
||
]
|
||
|
||
#set page(footer: sections-band)
|
||
|
||
#slide[
|
||
#toolbox.register-section("Intro")
|
||
= What’s a License?
|
||
#toolbox.pdfpc.speaker-note("This is a note that only the speaker will see.")
|
||
- How you tell other people what they can and can't do with the things you make
|
||
#toolbox.pdfpc.speaker-note("TEST")
|
||
- By default, works are have All Rights Reserved
|
||
- Until big corpo and/or pirates get their mitts on it
|
||
- There’s two big classes of license
|
||
- Permissive
|
||
- Restrictive
|
||
- Can also control other things
|
||
- Some licenses have ethics clauses
|
||
- Some are royalty-free
|
||
#colbreak()
|
||
#set text(size: 13pt)
|
||
Q: First up, what is a license?
|
||
|
||
A: A miserable block of text, next question
|
||
|
||
- Copyright law is a bitch, Posting your stuff online is a bitch
|
||
|
||
- Basically a license is your way of telling other people what they can and can’t do with your stuff
|
||
|
||
- By default, your stuff is under All Rights Reserved, which means you own it and if anyone wants to use it/look at it/share it/what have you, then they’ve gotta go through you first
|
||
|
||
- In practice, that's probably not gonna stop anyone until you get lawyers involved
|
||
|
||
- So with the kind of licenses you can get off the shelf, there’s two main types, Permissive and Restrictive, I find it helpful to think of these from the point of view of big corpo
|
||
- Permissive: Basically gives downstream people more freedom to do whatever they want. Like making their own copy of your stuff and selling it
|
||
- Big companies will generally only use dependencies if they’re under a permissive license
|
||
- Restrictive: Intended to protect specific freedoms, like distribution and modification
|
||
- Licenses can attempt to enforce other things like ethics clauses or royalty free
|
||
- Royalties in this case are basically a subscription fee to use a copyrighted work
|
||
|
||
]
|
||
|
||
#slide[
|
||
#toolbox.register-section("FOSS Licenses")
|
||
#set align(center)
|
||
#set align(horizon)
|
||
= FOSS Licenses
|
||
|
||
#colbreak()
|
||
#set align(left)
|
||
#set align(top)
|
||
FOSS stands for Free and Open Source Software, the definition of which is loosely enforced by the Open Source Initiative and Free Software Foundation
|
||
// inset: 0.5em,
|
||
]
|
||
#slide[
|
||
= FOSS Freedoms
|
||
#toolbox.side-by-side[
|
||
- As outlined by the Stall Man himself, this outlines what’s open source or not
|
||
0. The freedom to run the program to for whatever and whyever
|
||
1. The freedom to see and modify the source code
|
||
2. The freedom to make and distribute copies
|
||
3. The freedom to do that with your modified versions
|
||
][
|
||
#figure(
|
||
image("img/stallman.png",height: 325pt))
|
||
]
|
||
#colbreak()
|
||
This is the general idea of what FOSS is
|
||
- Let me use the program however the fuck I want
|
||
- Let me do whatever the fuck I want with the code
|
||
- I can give your code to whoever the fuck
|
||
- I can give my code to whoever the fuck
|
||
]
|
||
|
||
#slide[
|
||
= FOSS Freedoms (cont.)
|
||
|
||
- Everything in this section is gonna require the following:
|
||
- Commercial Use
|
||
- Distribution
|
||
- Modification
|
||
- Private Use
|
||
]
|
||
|
||
#slide[
|
||
#toolbox.side-by-side(columns: (4fr,3fr))[
|
||
= GPL: The GNU Pubic Licenses
|
||
|
||
- GPLv2
|
||
- No Warranty
|
||
- No Liability
|
||
- Disclose Source
|
||
- License notice
|
||
- Same License
|
||
- State Changes
|
||
- GPLv3
|
||
- Don’t lock down the hardware
|
||
- No DRM
|
||
- Patent Grant
|
||
- License Interop
|
||
][
|
||
#set align(bottom)
|
||
#figure(
|
||
image("img/gpl-compat.png"))
|
||
]
|
||
]
|
||
|
||
#slide[
|
||
= GPL (cont.)
|
||
|
||
- AGPLv{2,3}
|
||
- Network use counts as distribution
|
||
- Used by Grafana, Mastodon, et al
|
||
- LGPLv{2,3}
|
||
- Linking Freedom
|
||
]
|
||
|
||
#slide[
|
||
= BSD Licenses
|
||
On the more permissive end
|
||
#toolbox.side-by-side()[
|
||
- BSD 4 Clause
|
||
- Original BSD license
|
||
- Copyright notice
|
||
- No endorsement
|
||
- Attribution
|
||
- BSD 3 Clause
|
||
- Removes attribution requirement
|
||
][
|
||
- BSD 2 Clause
|
||
- Yes endorsement
|
||
- BSD 2 Clause Patent
|
||
- Same as above with a patent grant
|
||
- BSD 1 Clause
|
||
- Same as 2 Clause, only need license for source
|
||
- BSD 0 Clause
|
||
- Fuck it we ball
|
||
]
|
||
]
|
||
#slide[
|
||
= Creative Commons
|
||
Intended to sit between public domain and All rights reserved
|
||
- Not specific to software
|
||
- This presentation is CC-BY-NC-SA 4.0
|
||
- CC-BY
|
||
- Attribution
|
||
- CC-BY-SA
|
||
- Attribution + ShareAlike
|
||
- CC0
|
||
- Public Domain
|
||
]
|
||
#slide[
|
||
= The Permissive Twins
|
||
Apache:
|
||
- Keep Notices
|
||
- Unmodified code stays under Apache in derivatives
|
||
- Modified code can be anything
|
||
- Patent Grant
|
||
- State Changes
|
||
- GPLv3 Compatible
|
||
- LLVM Exception (optional)
|
||
- FSF begrudgingly approved
|
||
]
|
||
|
||
#slide[
|
||
= The Permissive Twins (cont.)
|
||
MIT:
|
||
- Most popular license on GitHub
|
||
- Include the license in derivatives
|
||
- MIT-0 doesn’t even require that
|
||
- No patent grant
|
||
]
|
||
|
||
#slide[
|
||
= The Other Public Domain Ones
|
||
|
||
- WTFPL
|
||
- “You just DO WHAT THE FUCK YOU WANT TO.”
|
||
- Unlicense
|
||
- Basically the same thing, doesn’t say the fuck word
|
||
]
|
||
|
||
#slide[
|
||
= Grab Bag
|
||
- EUPL
|
||
- Most popular on GyattHub
|
||
- Made by EU
|
||
- Compatible with GPL/AGPL/MPL/LGPL/APL/JPL/Both IPLs/VPL/BNPL/WTFPL and what have you
|
||
- Linking Freedom
|
||
- Network Use is distribution
|
||
- Royalty Free
|
||
- MPL
|
||
- Used by Firefox and Thunderbird
|
||
- You gotta keep em seperated
|
||
]
|
||
#slide[
|
||
#toolbox.register-section("Non-FOSS Licenses")
|
||
#set align(center)
|
||
#set align(horizon)
|
||
= Non-FOSS Licenses
|
||
#set align(bottom)
|
||
]
|
||
|
||
#slide[
|
||
= Creative Commons Part 2
|
||
|
||
- CC-BY-NC-SA
|
||
- Attribution
|
||
- NonCommercial
|
||
- Sharealike
|
||
- CC-BY-ND
|
||
- Attribution
|
||
- NonCommercial
|
||
- CC-BY-NC-ND
|
||
- I’ll let you figure this one out
|
||
]
|
||
#slide[
|
||
= Putting the Pot in Potpourri
|
||
|
||
- AFPL
|
||
- Derived from GPL
|
||
- Include Source Code
|
||
- No selling
|
||
- Anti-996
|
||
- So back in the old #ruby[zhōng][中] of #ruby[guó][国], there was this thing called the 996 system
|
||
|
||
Don’t be Mr. Krabs, follow labor laws
|
||
]
|
||
#slide[
|
||
= Putting the Pot in Potpourri (cont.)
|
||
|
||
- Anti-Capitalist Software License
|
||
- Include License
|
||
- Don’t be a capitalist
|
||
- ACAB
|
||
- Artistic License
|
||
- #strike[Is what I’m taking with all these legal definitions]
|
||
- Not that important except FSF calls it "Too clever for its own good" which I thought was funny
|
||
- I can't even find a link for this
|
||
|
||
]
|
||
#slide[
|
||
= Putting the Pot in Potpourri (cont.)
|
||
|
||
- BSD 3 Clause No Nuclear Warranty
|
||
#show: later
|
||
#place(top+center,dy: -75pt, image("img/full-bush.png", height: 150%))
|
||
|
||
]
|
||
#slide[
|
||
= Rapid Fire since it’s 5:49PM
|
||
|
||
- BUSL/BSL
|
||
- GPLv2 ish after 4 years
|
||
- CPOL
|
||
- No selling this
|
||
- Don’t do shit without my permission
|
||
- Commons Clause
|
||
- Don’t sell this shit
|
||
- Not a license
|
||
- Functional Source
|
||
- Apache or MIT after 2 years
|
||
- No competing with me
|
||
]
|
||
#slide[
|
||
= Rapid Fire since it’s 5:49PM
|
||
|
||
- HESSLA
|
||
- No human rights violations pls
|
||
- No helping other people do human rights violations
|
||
- JSON
|
||
- Don’t be evil
|
||
- Unless you’re IBM
|
||
- PPL
|
||
- Don’t make money off of this unless you’re a co-op
|
||
- SSPL
|
||
- AGPL with extra steps
|
||
- SIL OFL
|
||
- For fonts
|
||
- don’t charge money for it
|
||
]
|
||
#slide[
|
||
= Hexley
|
||
|
||
- WHY THE FUCK DOES APPLE HAVE A FUCKING LICENSE FOR ITS FURSONA
|
||
- WHY DOES APPLE HAVE A FURSONA
|
||
- WHY THE FUCK dO I HAVE The LICENSE FOR A NON-FOSS FUCKIGN FURSONA IN MY PRESENTATION
|
||
- You need to include the copyright statement somewhere
|
||
- If you want to mass produce merch, you need to request permission from the copyright holders
|
||
- derivatives must be related to original work
|
||
- derivatives should also should not "dilute the quality" of the work
|
||
- IT'S ONE AM AND THEY HIT THE SECOND FUCKING BRAINCELL
|
||
- I AM HAVING A DTROKE APPLE NAS TEO FURSONAE
|
||
]
|
||
#slide[
|
||
#toolbox.side-by-side[
|
||
#box(image("img/anika.png"))
|
||
][
|
||
#box(image("img/hexley.png"))
|
||
]
|
||
]
|
||
#slide[
|
||
= Hippocratic License
|
||
This one is pretty modular actually
|
||
- no charge
|
||
- no royalty
|
||
- can remix/redistribute etc
|
||
- has patent grant
|
||
]
|
||
#slide[
|
||
= Hippocratic License Part 2
|
||
#toolbox.side-by-side[
|
||
- Don't murder people
|
||
- Don't slavery
|
||
- Don't child labors
|
||
- No Cruel and Unusual Punishment
|
||
- No racism/sexism/etc
|
||
- Right to a fair trial?
|
||
- No search and seizure without a warrant or random arrests?
|
||
- No invasions of home or privacy, or communications
|
||
- No eminent domain
|
||
- No Trail of Tearsing people
|
||
- No unionbusting
|
||
][
|
||
- No hurting the environment
|
||
- equal pay for equal work
|
||
- reasonable working hours and periodic paid holidays
|
||
- Verify your supply chain
|
||
]
|
||
]
|
||
#slide[
|
||
= Hippocratic License Part 3
|
||
|
||
#toolbox.side-by-side[
|
||
- Don't be a fossil fuel company
|
||
- No hurting the environment (again?)
|
||
- No mineral or fossil fuel mining
|
||
- Don't be on the BDS list
|
||
- Don't be the Taliban
|
||
- Don't be the Myanmar government
|
||
- Don't do business in/with the Xinjiang Uygur Autonomous Region of China?
|
||
- Don't have beef with Customs and Border Protection for Forced Labor
|
||
][
|
||
- Don't do mass surveillance
|
||
- Don't be a military
|
||
- Don't be law enforcement
|
||
- Don't be a media entity that promotes violence
|
||
- Don't unionbusting (again?)
|
||
]
|
||
]
|
||
#slide[
|
||
= Some resources that can help with picking a license
|
||
|
||
- Most of these are only gonna help with FOSS licenses
|
||
- #link("https://choosealicense.com/")[choosealicense.com] is maintained by GitHub, has the most common licenses
|
||
- #link("https://interoperable-europe.ec.europa.eu/collection/eupl/solution/licensing-assistant/find-and-compare-software-licenses")[EU Licensing Assistant] makes it easier to compare licenses in my opinion
|
||
- #link("https://spdx.org/licenses/")[SPDX] is gonna be the most thorough source, has a list of like every license on earth, and licenses are typically identified using their entry in the SPDX list
|
||
]
|