#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
]
