Avatar billede md_craig Nybegynder
06. marts 2010 - 13:09 Der er 6 kommentarer

Open Source Distribution med Ikke Open Source dele

Hej.

Jeg har et lille problem, jeg udvikler PT en hel del i min fritid, ting som jeg sådan set er villig til at distribuere under henholdsvis LGPL og GPL alt efter hvad det er.

I dele af det jeg udvikler bruger jeg følgende GUI controller:
http://devcomponents.com/

Som jeg har købt en "Single Developer with Source Code" licens til, men det er jo dermed ikke OpenSource

Så hvordan gør man lige, distribuere det som licensen tilader havde jeg distribueret på en hvilket som helst anden måde? samt selvfølgelig explicit notere hvordan licensen omkring denne del er.

Eller uden dll.en i en source pakke, men med i en installations pakke.

(Ja hvorfor overhovedet bruge non-OpenSource i noget man ønsker at distribuere OpenSource, well der var ikke bedre alternativer til det der skulle bruges >.<)
Avatar billede arne_v Ekspert
06. marts 2010 - 14:10 #1
Det kan godt lade sig goere at distribuere open source med binaere blobs som er closed source.

Der er Linux distroer som kommer med binaere closed source drivere.

Saa hvis licens til den komponent tillader dig at redistribuere DLL uden at hverken dig eller kunder skal betale ekstra, saa maa det vaere OK.

Du kan kun bruge GPL for din kode hvis komponenten ikke laver callback til din kode.

LGPL er OK uanset hvordan kaldeene foregaar.

Husk ogsaa at der kan vaere andre regler hvis du retter i koden til den komponent.

Og til sidst: jeg er ikke jurist og dermed slet ikke kvalificeret til at udtale mig om juridiske emner.

:-)
Avatar billede md_craig Nybegynder
25. april 2010 - 22:22 #2
Forstår ikke lige hvorfor at "Callbacks" skulle være et issue, det er jo stadig mit kode der er "consumer" i den sammenhæng, det må være referencerne der tæller som jeg ser det... Og da jeg referere det som in binary, så er referencen der ret klar.

Det er et GUI framework så der er jo masser af events af naturlige årsager.

Som jeg læser GPL så går det ud på at sikre ens source mod at andre Anvender den og distribuere den commercielt, dvs indirekte tjæner penge på det... Mens LGPL er fuld kommen åben omkring dette...

Havde egentlig tænkt mig at distribuere Applikationer og Plugins under GPL mens Frameworks ville ligge under LGPL.
Avatar billede arne_v Ekspert
25. april 2010 - 23:15 #3
Problemet med callbacks er at closed source komponenten så også kan betragtes som consumer af din GPL kode. Ihvertfald ved en tilpas striks fortolkning.

Jeg tror dog nok at jeg var lidt for kategorisk i #1. Hvis callback er standardiseret, så vil man have gode argumenter for at det ikke er linking.

Både GPL og LGPL tillader at andre bruger koden kommercielt både i uændret og i modificeret form. Forudsat at de opfylder betingelserne i GPL og LGPL.

Forskellen mellem GPL og LGPL drejer sig primært omkring linking. GPL har en viral effekt på kode som kalder den. Sådan lidt forsimplet:
any license EXE + LGPL DLL = OK
any license EXE + GPL DLL = problem

Så din konklusion med apps+plugins som GPL og framework som LGPL er rimelig standard.

Du skal bare overveje om der er noget ikke-GPL som kan anses som linket med GPL koden. Og gerne med en vis margin så advokaternes dygtighed ikke vil spilde nogen rolle i worst case scenariet en retssag.

Og så et spørgsmål: ville det være et problem hvis du gjorde det hele til LGPL? Det ville betyder at andre kunne linke deres closed source til din EXE. Men vil det være et problem?
Avatar billede md_craig Nybegynder
25. april 2010 - 23:50 #4
Først er mine Apps/Plugins ikke "Én EXE", men derimod en samling af DLL'er og evt. en EXE når det kommer til en standalone app.

Teknisk set ønsker jeg ikke at folk kan linke til dele af mine lag og sælge en løsning baseret på det direkte for penge. Så ja, det ønsker jeg ikke at bidrage til for den slags.

I Virkeligheden er jeg jo nok personligt mest tilhænger af GPL, men kan godt indse at Frameworks og GPL er en dårlig sammensætning hvis man ønsker dem brugt.

Forskellen er hensigten med tingene, når jeg releaser et Framework (if ever) så er meningen at det adopteres i andres applicationer, og dermed giver det også mening at lade det være mere åbent så flere adoptere det.

Når det kommer til de Plugins samt Apps så er meningen ikke at de skal adopteres i andres applicationer, derfor vil jeg gerne gøre dem mere restricted.

Callbacks og Events vil jo altid være "Standardiseret" i den her forstand, alle kontrakter omkring de events og callbacks der måtte være er alt sammen bestemt af den DLL jeg consumer, da den aldrig bliver afhængig af min DLL eller EXE, kan den i min verden aldrig blive consumer i den forstand.
Avatar billede arne_v Ekspert
26. april 2010 - 01:21 #5
Der er forskellige fortolkninger af GPL.

Mit indtryk er at Linus Torvalds (Linux) har en opfattelse som ligner din.

Men FSF har en lidt skrappere tilgang. Se f.eks.:
http://www.gnu.org/licenses/gpl-faq.html#GPLIncompatibleLibs
http://www.gnu.org/licenses/gpl-faq.html#GPLAndPlugins
Avatar billede md_craig Nybegynder
30. april 2010 - 13:52 #6
Hmmm... Se det er den slags der sker når "udviklere" prøver at skrive "legal documents" >.<...

Men om i værste fald kan man jo smide en "undtagelser" ind som de beskriver, for teknisk set bliver jeg ramt af: "Can I apply the GPL when writing a plug-in for a non-free program?"...

Men det er jo lidt tåbeligt at lave en lisens på den måde de beskriver, for vælger man at skrive et plugin til et program som er andet mands eje vil man jo ALDRIG kunne tvinge licens betingelser ned over hovedet på ham, dermed i følge det de bliver de "undtagelser" en fast ting, for man kan aldrig rigtig slippe for dem med mindre man lige rammer et andet GPL program.

Så ja... Tåbeligt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester