SlideShare a Scribd company logo
1 of 52
Att leva med Öppen Källkod
synvinklar
Licensen
Användare Producent
synvinklar
Daniel Melin
Björn
Stenberg
Daniel
Stenberg
Frågor
●
Klargörande? Avbryt!
●
Lite större? Frågestund i slutet!
Innehåll
●
Vad är öppen källkod?
●
Varför använda öppen källkod?
●
Drivkrafter
●
Strategier
Vad är öppen källkod?
●
Programvara öppen för...
●
granskning
●
ändring
●
vidaredistribution
●
Ibland med villkor
Varför välja öppen källkod?
●
Inga licenskostnader
●
Ingen leverantörsinlåsning
●
Full insyn
●
Full kontroll
●
“Köp svenskt”
Drivkrafter
●
Funktion
●
Prestanda
●
Teknisk elegans
●
Ära
Vanliga tankefel
●
“Kunder”
●
“Marknadsandelar”
Strategi: Uppgradering
●
Stanna på en fungerande version
eller
●
Uppgradera löpande
Stanna
●
“Pilla inte på det som funkar”
+ Enkelt
+ Billigt
- Kan bli jobbigt om man ändrar sig
Uppgradera
●
“Hänga med i utvecklingen”
+ Fixade buggar
+ Nya funktioner
+ Bättre prestanda
- Kostar tid
- Risk för regressioner
Strategi: Ändringar
●
Håll ändringar privata
eller
●
Donera ändringar
Håll ändringar privata
+ Enkelt och billigt på kort sikt
- Långsiktigt underhållsansvar
- Jobbigare uppgraderingar
- Tillåter licensen?
Donera ändringar
+ Underhållet överlämnas
+ Smärtfria uppgraderingar
- Andra har åsikter om ditt arbete
- Mer jobb initialt
Sammanfattning
●
Ett annat tankesätt
●
Mer frihet
●
Förstå licensen!
Juridik & öppen källkod
daniel.melin@kammarkollegiet.se
Vem är jag?
 Upphandlare på Kammarkollegiet
 Ansvarar bl.a. för upphandlingen ”Öppna
programvaror 2010”
 Hållit på med öppen källkod sen sent 90-tal
 Inte programmerare, inte jurist
 Stort intresse av immaterialrätt förutom öppen källkod
och LOU
Öppen eller stängd?
 En ”stängd” eller ”proprietär” programvara ger endast
användaren en nyttjanderätt men i princip inga andra
rättigheter.
 En ”öppen” eller “fri” programvara ger en mängd olika
rättigheter, vilka dessa är definieras av
programvarans licensvillkor.
 Alla licenser syftar till samma sak; definiera vilka
skyldigheter och rättigheter som hänger samman
med en viss upphovsrättsskyddad mjukvara.
Alla dessa licenser
 Två ytterligheter, BSD och GPL:
 BSD säger i princip ”Ta koden och gör vad du vill med
den, inklusive licensiera om den och stoppa in den i
proprietär programvara”.
 GPL säger i princip ”Ta koden och gör vad du vill med
den, men om du sprider koden till någon annan på
något sätt så måste du publicera koden”.
 Således kan BSD bli GPL men inte tvärtom.
 Således är BSD, men inte GPL, mer populär bland
proprietära leverantörer.
Öppen källkod och juridik
 Öppen källkodslicenser bygger på upphovsrätten där
upphovsmannen avsäger sig stora delar av sina
rättigheter.
 Generellt är patent och FRAND-villkor (Fair,
Reasonable And Non-Discriminating) oförenliga med
öppen källkod.
Öppen källkod och svensk rätt (1)
 Upphovsrättslagen är den legala basen.
 Att inte uppfylla villkoren i en öppen källkodslicens är
ett upphovsrättsintrång och inte att avtalsbrott.
 Ett öppen källkodsprogram som erbjuds utan
motprestation är att beteckna som ett benefikt avtal
( = gåva).
 Många lagar kan spela in beroende på
omständigheterna, t.ex. Upphovsrättslagen,
Avtalslagen, Köplagen, Konsumentköplagen,
Gåvolagen, Skadeståndslagen och
Distansavtalslagen.
Öppen källkod och svensk rätt (2)
 Klausuler som ”befintligt skick” eller ”as is” är inte
populära i svensk rätt och skulle sannolikt inte hålla i
en rättslig prövning.
 Köplagen kan sannolikt inte användas för att kräva
upphovsmannen bakom en öppen källkods-
programvara på något.
 Konsumentköplagen skulle kunna användas.
GNU GPL (General Public License)
 GPL kräver att källkoden görs tillgänglig för mottagarna
ifall upphovsmannen väljer att distribuera mjukvaran.
 Det går inte att licensiera om GPL-källkod.
 Om mjukvaran körs på en server och endast resultatet
av exekveringen tillgängliggörs för tredje part sker
ingen distribution enligt GPL. Källkoden till mjukvaran
behöver då inte göras tillgänglig.
 Modifikationer av mjukvaran för eget bruk behöver inte
göras tillgängliga för andra.
GPL
 Om en mjukvara distribueras i kompilerad form och den
innehåller delar licensierade under GPL så måste all
källkod som krävs för att kompilera programvaran
tillgängliggöras.
 Ett upphörande av distribution förändrar inget, all källkod
måste fortfarande tillgängliggöras.
 Den som distribuerar källkod får inte ställa några krav på
vad mottagarna gör med källkoden så länge GPL uppfylls.
GPL och AGPL (Affero GPL)
 Om upphovsmannen vill täppa till ”the ASP loophole” kan
AGPL användas.
 AGPL är identisk med GPL, men med tillagda klausuler
som reglerar att all källkod måste tillgängliggöras även om
distributionen endast innebär presentation av
exekveringen.
GPLv3
 Senaste versionen av GPL.
 En moderniserad version av GPLv2.
 Tydligare regler för inbyggda system.
 Helt omgjort gällande patent.
 Svagt intresse i början, men har snabbt accepterats.
GPLv3 och inbyggda system
 Om mjukvaran är inlåst i en krets och inte på något sätt
kan modifieras krävs endast tillgängliggörande av
källkoden.
 Om mjukvaran kan modifieras måste mottagaren av det
inbyggda systemet äga rätt att modifiera mjukvaran.
GPLv3 och patent
 Det är möjligt att distribuera källkod licensierad med
GPLv3 samtidigt som relevanta patent finns.
 Måste vara ”royalty free”, FRAND funkar inte.
 En patentlicens som ges till en mottagare måste
automatiskt utsträckas till alla potentiella mottagare.
Tack för mig!
daniel.melin@kammarkollegiet.se
curl, ett öppen källkodsprojekt
http://curl.haxx.se/
Agenda
En känsla av hur det kan fungera
En insikt i hur projektet tänker
Det är vanliga människor bakom
Du kan hjälpa till
Alla projekt är unika, det här är ett 
exempel
Daniel Stenberg
●
öppen källkodshacker sedan 
början av 90­talet
●
Leder 5­nånting öppen källkods­
projekt
●
Konsult på Haxx inom inbyggda 
system
cURL
●
Ett projekt, två delar: curl och libcurl
●
Laddar data ner och upp
●
DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, 
POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET och TFTP
●
Lågnivå, folk bygger saker “ovanpå”
●
Finns med “överallt”
●
Historia från 1997
●
Mål: Vara det bästa “datatransfer­alternativet”
Företag
16  Software,  Adara  Networks,  Adobe,  Aditiva,  Adknowledge,  alaTEST,  AOL,  Apple,  Archivas,  ATX,  Bietfuchs, 
Bitcartel, Bloglines, Blue Digits, Blue Security, bwin, Candel Technologies, Canonical, Cascade Data Systems, 
Carestream  Health,  CatchFIRE  Systems,  CERN,  Cisco,  Chronos,  CLAAS  Tractor  SAS,  Contactor  Data, 
Cybernetica AS,
Datasphere,  Digium,  EdelWeb,  EFS  Technology,  Eiffel  Software,  Emsoft,  Euroling,  Eye­Fi,  Facebook,  F­Secure, 
Friendfeed, FMWebschool, GRIN, Focuseek, Garmin, GipsyMedia, Google, Haxx, inSORS, IBM, Ideelabor, Idruna 
Software, Infomedia Business Systems Division, Information Handling Services, Internet Security Systems, JET, Jlynx 
Software,  Kajala  Group,  Karelia,  Kencast,  Lassosoft,  Linden  Labs,  Machina  Networks,  MandrakeSoft, 
McAfee/Network Associates, MediaAnalys, Micromuse, MokaFive, Motorola, Neptune Labs,
Network  Mail,  Neuros  Technology,  Nortel,  Office2office,  Oktet  Labs,  One  Laptop  per  child,  On  Technology, 
OpenLogic,  Optimsys,  Oracle,  Palm/HP,  Panasonic,  Pandigital,  Polaroid  Corporation,  RBS,  Retarus  Network 
Services,  Rolltech,  RSA  Security,  RSSS,  SanDisk,  SAS  Institute,  SEB,  Siemens,  Silicon  Landmark,  Sony,  Source 
Remoting,  Spotify,  Steambird,  Sun,  Swisscom,  Symantec,  System  Garden,  Tilgin,  Toshiba  Coroporation, 
Tribalmedia, Tiempo de Espera, Visonsys, Vivisimo, Vmware, Voddler, Wump Research, Yahoo, Zimbra, Zixcorp
Med flera
Användare
●
En miljon nerladdningar per år
●
Miljoner användare
●
Hundratals företag
●
Hundratals öppen källkods­
produkter
Började litet
●
“vore bra men en grej som ...”
●
“inget som finns passar mig...”
●
“hur svårt kan det vara...”
●
“hej allihop, jag har gjort det här...”
●
“visst, skicka din patch bara...”
●
“release early, release often...”
●
drygt 100 000 rader kod idag, efter tolv år
Licenstänk
●
Så öppet som möjligt
●
Så fritt som möjligt för alla att använda till 
vad som helst
●
Företagsvänligt
●
Det var en resa över de tidiga åren innan vi 
landade hos...
●
BSD
Frivilliga
●
Inget företag stöder direkt
●
Alla är med som frivilliga på eget initiativ
●
Nästan ingen får betalt för att hacka curl
●
Utveckling, debugging, releaser, support 
etc sker på fritid
●
De flesta som hackar curl är professionella 
utvecklare någonstans
Versionshantering
●
En självklarhet
●
Distribuerad utveckling över 
världen kräver det
●
All kod, allting, alltid publikt
●
CVS de första tolv åren, nu git
Litet core­team
●
En handful människor som hängt kvar
●
De får “pusha” commits till git
●
Alla får säga sin mening, reviewa patchar, 
diskutera designs, posta patch etc
●
Över 800 listade bidragare
●
Väldigt få människor hänger kvar
Email tack
●
1000 pers på mailinglistan
●
Patchar tar vi helst via mail
●
Buggrapporter tar vi gärna per mail
●
Designdiskussioner sker alltid per mail
●
Frågor är bäst tagna på maillistan
●
Klagomål tas bäst på listan
Copyright
●
Individuella copyrights
●
Daniel har de flesta
●
Större ändringar berättigar till en 
egen
●
Blanda inte ihop copyright med 
licens
Vad går in ?
●
Push­rättighet == bestämmanderätt
●
Buggfixar går in
●
Nya features/funktioner måste diskuteras
●
Feature­creep måste bekämpas
●
Test­fall och dokumentation måste till
Releaser
●
Vi releasar ofta
●
I snitt var 60:e dag med 26 buggfixar per 
release
●
Ett 20­tal personer bakom varje release
●
Vi släpper enbart kod. Binärpaket byggs av 
folk och organisationer utanför projektet.
Test
●
Vi har en test­svit
●
Vi vill testa allt i den
●
Vi testar automatiskt hela tiden på massor med 
plattformar
●
Vi sammanställer alla tester på sajten
●
Portabel automatisk test är svårt
●
Debugga avlägsna testfails är svårt
●
Ingen enskild person har alla target­miljöer
Supporta gamla releaser
●
Nä
●
Vi har svårt nog att hantera den 
senaste releasen
●
Distros får hantera backports etc
●
Om någon betalade så vore det 
förstås en annan sak...
Betala för en feature
●
Vi tar emot nya features och buggfixar på 
samma sätt oavsett betalning
●
Att betala en existerande utvecklare i teamet 
säkerställer att den nya funktionen eller 
buggfixen görs på ett sätt som kan gå in
●
Projektet är ingen juridisk person och tar inte 
emot betalningar
●
Personer i projektet gör som de vill
Säkerhet
●
Granskar alla ändringar
●
Testar alla ändringar
●
Stängd rapportera­säkerhets­problem email­
adress
●
Hanterar säkerhetsproblem enligt öppen 
källkod “best practises”
●
Publicerar säkerhetsnotiser för alla säkerhetsfel 
vi hittat eller fått rapporterat
Summering
●
Hur du kan jobba mot öppen 
källkod 
●
Hur licenserna fungerar
●
Hur ett öppen källkodprojekt 
funkar
Frågor eller funderingar
Tack för oss
Björn Stenberg <bjorn@haxx.se>
Daniel Melin <daniel.melin@kammarkollegiet.se>
Daniel Stenberg <daniel@haxx.se>

More Related Content

Viewers also liked

H1N1 Vaccination 1 115 10
H1N1 Vaccination 1 115 10H1N1 Vaccination 1 115 10
H1N1 Vaccination 1 115 10David
 
Overview of Linux real-time challenges
Overview of Linux real-time challengesOverview of Linux real-time challenges
Overview of Linux real-time challengesDaniel Stenberg
 
Ode To SCT088
Ode To SCT088Ode To SCT088
Ode To SCT088doinadanz
 
libcurl, seven SSL libraries and one SSH library
libcurl, seven SSL libraries and one SSH librarylibcurl, seven SSL libraries and one SSH library
libcurl, seven SSL libraries and one SSH libraryDaniel Stenberg
 
curl and TLS #MeraKrypto
curl and TLS #MeraKryptocurl and TLS #MeraKrypto
curl and TLS #MeraKryptoDaniel Stenberg
 
Fscons scalable appplication transfers
Fscons scalable appplication transfersFscons scalable appplication transfers
Fscons scalable appplication transfersDaniel Stenberg
 
Everybody runs this code all the time
Everybody runs this code all the timeEverybody runs this code all the time
Everybody runs this code all the timeDaniel Stenberg
 
curl and new technologies
curl and new technologiescurl and new technologies
curl and new technologiesDaniel Stenberg
 

Viewers also liked (11)

H1N1 Vaccination 1 115 10
H1N1 Vaccination 1 115 10H1N1 Vaccination 1 115 10
H1N1 Vaccination 1 115 10
 
Overview of Linux real-time challenges
Overview of Linux real-time challengesOverview of Linux real-time challenges
Overview of Linux real-time challenges
 
Ode To SCT088
Ode To SCT088Ode To SCT088
Ode To SCT088
 
libcurl, seven SSL libraries and one SSH library
libcurl, seven SSL libraries and one SSH librarylibcurl, seven SSL libraries and one SSH library
libcurl, seven SSL libraries and one SSH library
 
Foss Sthlm #1 - curl
Foss Sthlm #1 - curlFoss Sthlm #1 - curl
Foss Sthlm #1 - curl
 
curl and TLS #MeraKrypto
curl and TLS #MeraKryptocurl and TLS #MeraKrypto
curl and TLS #MeraKrypto
 
Foss-juridik i Sverige
Foss-juridik i SverigeFoss-juridik i Sverige
Foss-juridik i Sverige
 
Fscons scalable appplication transfers
Fscons scalable appplication transfersFscons scalable appplication transfers
Fscons scalable appplication transfers
 
Everybody runs this code all the time
Everybody runs this code all the timeEverybody runs this code all the time
Everybody runs this code all the time
 
Http2 right now
Http2 right nowHttp2 right now
Http2 right now
 
curl and new technologies
curl and new technologiescurl and new technologies
curl and new technologies
 

Similar to Att leva med Öppen Källkod

Avtal Licenser Ehandel
Avtal Licenser EhandelAvtal Licenser Ehandel
Avtal Licenser EhandelMathias Klang
 
Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24
Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24
Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24Gnutiken
 
Gnutiken Seminarium 2010 03 19
Gnutiken Seminarium 2010 03 19Gnutiken Seminarium 2010 03 19
Gnutiken Seminarium 2010 03 19Gnutiken
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningJohan Holmberg
 
Continuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och DockerContinuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och DockerKristoffer Vidmo
 
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkVälj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkCreuna Sverige
 
Patentarbete i industrin och datorrelaterade uppfinningar
Patentarbete i industrin och datorrelaterade uppfinningarPatentarbete i industrin och datorrelaterade uppfinningar
Patentarbete i industrin och datorrelaterade uppfinningarEggeboy
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Creuna Sverige
 

Similar to Att leva med Öppen Källkod (10)

Avtal Licenser Ehandel
Avtal Licenser EhandelAvtal Licenser Ehandel
Avtal Licenser Ehandel
 
Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24
Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24
Föredrag om fri programvara för Stadsbiblioteket Göteborg 2011 02-24
 
Gnutiken Seminarium 2010 03 19
Gnutiken Seminarium 2010 03 19Gnutiken Seminarium 2010 03 19
Gnutiken Seminarium 2010 03 19
 
Metodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testningMetodik - Versionshantering, pakethantering, paketering och testning
Metodik - Versionshantering, pakethantering, paketering och testning
 
Continuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och DockerContinuous Delivery med Tutum och Docker
Continuous Delivery med Tutum och Docker
 
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverkVälj rätt i teknikdjungeln - Del 1: CMS och webbramverk
Välj rätt i teknikdjungeln - Del 1: CMS och webbramverk
 
Patentarbete i industrin och datorrelaterade uppfinningar
Patentarbete i industrin och datorrelaterade uppfinningarPatentarbete i industrin och datorrelaterade uppfinningar
Patentarbete i industrin och datorrelaterade uppfinningar
 
Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln Välj rätt i teknikdjungeln
Välj rätt i teknikdjungeln
 
Wordpress och Open Sorce
Wordpress och Open SorceWordpress och Open Sorce
Wordpress och Open Sorce
 
Mobil web
Mobil webMobil web
Mobil web
 

More from Daniel Stenberg

More from Daniel Stenberg (20)

mastering libcurl part 2
mastering libcurl part 2mastering libcurl part 2
mastering libcurl part 2
 
mastering libcurl part 1
mastering libcurl part 1mastering libcurl part 1
mastering libcurl part 1
 
curl - openfourm europe.pdf
curl - openfourm europe.pdfcurl - openfourm europe.pdf
curl - openfourm europe.pdf
 
curl experiments - curl up 2022
curl experiments - curl up 2022curl experiments - curl up 2022
curl experiments - curl up 2022
 
curl security - curl up 2022
curl security - curl up 2022curl security - curl up 2022
curl security - curl up 2022
 
HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022HTTP/3 in curl - curl up 2022
HTTP/3 in curl - curl up 2022
 
The state of curl 2022
The state of curl 2022The state of curl 2022
The state of curl 2022
 
Let me tell you about curl
Let me tell you about curlLet me tell you about curl
Let me tell you about curl
 
Curl with rust
Curl with rustCurl with rust
Curl with rust
 
Getting started with libcurl
Getting started with libcurlGetting started with libcurl
Getting started with libcurl
 
HTTP/3 is next generation HTTP
HTTP/3 is next generation HTTPHTTP/3 is next generation HTTP
HTTP/3 is next generation HTTP
 
Landing code in curl
Landing code in curlLanding code in curl
Landing code in curl
 
Testing curl for security
Testing curl for securityTesting curl for security
Testing curl for security
 
common mistakes when using libcurl
common mistakes when using libcurlcommon mistakes when using libcurl
common mistakes when using libcurl
 
HTTP/3 in curl 2020
HTTP/3 in curl 2020HTTP/3 in curl 2020
HTTP/3 in curl 2020
 
The state of curl 2020
The state of curl 2020The state of curl 2020
The state of curl 2020
 
curl roadmap 2020
curl roadmap 2020curl roadmap 2020
curl roadmap 2020
 
curl better
curl bettercurl better
curl better
 
HTTP/3 for everyone
HTTP/3 for everyoneHTTP/3 for everyone
HTTP/3 for everyone
 
HTTP/3, QUIC and streaming
HTTP/3, QUIC and streamingHTTP/3, QUIC and streaming
HTTP/3, QUIC and streaming
 

Att leva med Öppen Källkod