Oscar's Mission: Operation Source Code Skrivet enbart av människa. "Därför är öppen källkod bra för offentlig sektor" av Digitalist Open Tech AB: - https://www.youtube.com/watch?v=deS9-k6VZMg Dr. Björn Regnell's Intro: https://www.youtube.com/watch?t=2935&v=ggoGaVJdkHc - Förstå vad "Open Source" betyder samt dess kulturella härkomst - Förstå vad "Free Software" betyder samt dess kulturella härkomst (GNU, https://www.gnu.org/) - Förstå vad FOSS (Free and Open Source Software) betyder. Används som ett paraplybegrepp. Se mångfalden av licenser: https://opensource.org/licenses Förstå vad permissive licensing innebär: - MIT (https://opensource.org/license/mit) - BSD-2-Clause (https://opensource.org/license/bsd-2-clause) - Apache 2.0 (https://opensource.org/license/apache-2-0) Förstå vad copyleft licensing innebär - GPL (https://opensource.org/license/gpl-3-0) - AGPL (https://opensource.org/license/agpl-v3) - LGPL (https://opensource.org/license/lgpl-3-0) - EUPL (https://opensource.org/license/eupl-1-2) EUPL är framtagen av EU, inte strikt copyleft som GPL*. Översatt till alla europeiska språk, enig juridisk betydelse i alla jurisdiktioner. Kortfattat är den framställd för att fostra samarbete i offentlig sektor såväl som industri inom EU. Lägger extra vikt på denna, just för att det kommer från en organisation som kanske ses som 'vi' inom offentlig sektor. * GPL'erna har flera verisioner med hårfina skillnader men med konkreta konsekvenser, skillnader innefattar t.ex. vad som avses med 'slutanvändare' (AGPL), som är specialsydd för att omfatta nätverksbunden trafik (tänk serverprogramvara), och andra som lägger mindre mandat på hur man får använda koden på ett sätt som inte smittar, vidare definierad nedan. Mer om EUPL: https://eupl.eu/ Förstå syftet med dessa, samt hur några högprofilerade projekt gynnas av vederbörande licenser. Exempelvis PostgreSQL, Linux, FreeBSD (Unix-derivat, som linux, men annan licens-filosofi), sqlite. Undersök argumentet "Om alla kan se koden så är det osäkert". Konsultera säkerthetsexperter. Förstå hur *copyleft skyddar användaren*: Alla har rätt till koden, precis som med alla FOSS licenser. Om någon gör ändringar i koden och säljer/distribuerar den vidare så har slutanvändaren/målkonsumenten rätt till de ändringarna (praktexempel här är linux, under GPLv2). GPL callas ofta 'infectious' inom IT-branchen, just på grund av att licensen propagerar och blir juridiskt tillämpningsbar på projekt som använder sig av koden*, även om de är externa. Detta har medfört att vissa organisationer är 'rädda' för GPL (i.e. google i android). GPL-proponenter, jag inkluderad, understryker ofta att detta är en 'feature, not a bug', och tjänar till att **skydda användaren**. Användarskydd står i centrum för GNU's GPL. GNU är inte bara en licens, utan en filosofi, kanske till och med en ideologi. - Se: https://www.gnu.org/philosophy/philosophy.html * Vad "använda sig av koden" innebär kan beroende på jurisdiktion vara luddigt område, och kräver en lite mer teknisk insikt för att förstå helt. När tiden är kommen så demonstrerar jag detta i praktiska termer. Ett konkret exempel på GPL'ernas skydd är när James begärde ut source från an aktör som levererade specialversioner av VESC (https://vesc-project.com/) till sina ESC'er (samma firmware du så småningom kommer köra i faran, för övrigt). James är mycket kunnig inom licenser och var medveten om att VESC är licenserad under GPL, och att han därmed har licensstadgad rätt till källkoden som slutanvändare. Torpmotors, tillvekaren av ESC:n, försökte dölja sin användning av VESC, men efter omfattande korrespondens så releasade de slutligen source, och James kunde leverera färsk firmware till kund, som då även ärver samma rättigheter. Detta innebär att även du kan begära ut source från oss. Controllern (ESC:n) i fråga: - https://www.torpmotors.com/tc500-controller-2/ Detta användes som bevis för att controllern faktiskt körde VESC firmware: - https://www.youtube.com/watch?v=bIe_oj53fPw Permissive licensing, så som t.ex. MIT och Apache lägger mindre anspråk på hur koden används. I grova drag kan man säga att syftet är att frånsäga sig juridiskt ansvar, så som garantier och stämningar, samt att tillåta användningen av produkten/koden på ett så *fritt och widespread* sätt som möjligt. Licenserna är ofta väldigt mycket kortare och kokar ner till något i stil med "Gör vad ni vill, stäm mig inte, ge mig credit". Denna koden används friskt i även stängda projekt som MS Windows och Apple OSX, som för övrigt 'lånat' stora delar kod från FreeBSD för att framställa just OSX/MacOS. Detta vet man på grund av att distributionen av koden enligt licens måste innehålla licensenstexten, ofta omodifierad synlig för slutanvändaren (kör t.ex 'curl --version' i windows). Permissive -licenser propagerar (smittar) inte på samma vis som copyleft (te.x. GPL). Vi kan alltså inte begära ut source från Microsoft eller Apple, och detta är by-design. Det finns inget blod i vattnet mellan FreeBSD och Apple, snarare tvärt om. FreeBSD-utvecklarna är mycket införstådda med att deras kod får användas i 'stängda' projekt. Dessa stängda projekt bidrar regelbundet till 'upstream' (jargon för källkodens härkomst), trots att vederbörande parter ej har strikta krav på att dela med sig av sina ändringar. Bra exempel är t.ex. Netflix och Apple. FreeBSD-devsen har skrivit en lång utläggning om deras förhållandesätt till sin licens: - https://reflector.vtti.vt.edu/FreeBSD/doc/en/articles/bsdl-gpl/bsdl-gpl_en.pdf Ett annat exempel på 'permissively licensed core' är sqlite. Sqlite är en databas som bakas in i allt från spelmotorer till pakethanterare (tänk save files). De har en hembakad licens som rent praktiskt kan betraktas som 'public domain', som även inkluderar en liten bön i toppen av all deras source: - https://github.com/sqlite/sqlite/blob/master/src/random.c#L2-L10 Ur en utvecklares perspektiv är det en guldgruva att hitta sådana projekt. Den professionella kunskapsinvesteringen är inte lika tung när man vet att man kommer kunna använda denna koden precis överallt, utan restriktioner alls. Detta har medfört att sqlite används av så gott som alla, du kör det i din lur just nu. De flesta appar använder det som storage backend (hålla i data). Värt att notera att denna typen av 'widespread use' inte hade varit möjlig om inte licensen var så liberal. Som konsekvens avnjuter mänskligheten ett universellt datalagringsformat som i det närmaste kan klassas som en standard. Avslutingsvis vill jag betona att båda typer (permissive, copyleft) av licenser har sitt användningsområde. Det finns inget gott eller ont. Pålästa slutanvändare föredrar ofta copyleft, då de garanterar starkare skydd, personligen har jag ingen tillhörighet, men sympatiserar helt klart med GNU's (författarna till GPL) uppdrag. Jag, och industrin i sin helhet använder samtliga ovan nämnda licenser friskt och framgångsrikt.