Come evitare di essere biforcuto nell'oblio da un contributore più potente?


119

Come recentemente riportato qui :

Xamarin ha forgiato Cocos2D-XNA, un framework di sviluppo di giochi 2D / 3D, creando una libreria multipiattaforma che può essere inclusa nei progetti PCL.

Tuttavia, il fondatore del progetto che è stato biforcato afferma :

Lo scopo della licenza MIT è di limitare il tuo uso corretto. Non incoraggiarti a prendere il software, a rinominarlo come tuo, e poi "portarlo in una nuova direzione" come dici tu.

Pur non essendo illegale, non è etico.

Sembra che la pagina GitHub del nuovo progetto non indichi nemmeno che si tratti di un fork in un tipico modo GitHub, optando invece per una sezione Cronologia facilmente rimovibile (vedi in basso).

Quindi le mie domande sono:

  1. L'azione di Xamarin e il modo in cui l'azione è stata etica o no?
  2. È possibile evitare una situazione del genere se si è un singolo sviluppatore o un piccolo gruppo non finanziato di sviluppatori?

Spero che questa potrebbe essere una domanda sulla wiki o ci saranno alcune risposte obiettive basate sulla moderna etica / filosofia OSS.


25
Questo è più o meno esattamente ciò che serve alla GNU GPL, costringe i forkers a permetterti di ricollegare i loro cambiamenti se li rilasciano, dandoti i miglioramenti che hanno fatto più il tuo.
Valità

46
La licenza del MIT era stata originariamente scritta per il sistema X Window ed era stata scritta per consentire alle aziende di spostarla e includerla nei loro prodotti proprietari in vendita.
Alan Shutko,

5
@Valità: non importa se qualcosa è sotto licenza GPL o MIT per quanto riguarda il back-merging, e la GPL ha il suo gruppo di punture associate.
DevSolar,

66
"Lo scopo della licenza del MIT è quello di limitare il tuo uso corretto. Non incoraggiarti a prendere il software, a rinominarlo come tuo e quindi a" portarlo in una nuova direzione ", come dici." - Umm, in realtà, è praticamente esattamente quello che serve. Non esiste una "licenza MIT". Il MIT utilizza molte licenze diverse. La licenza in questione è la licenza MIT X11, creata appositamente per consentire ai venditori Unix di integrare MIT X11 nei loro Unici, rinominarlo, riscriverlo e portarlo nella direzione che preferiscono.
Jörg W Mittag,

10
La guida di ØMQ ha una storia interessante praticamente di questo scenario. L'asporto: "BSD fa in modo che la maggior parte delle persone ci veda come un pranzo. La fonte chiusa fa sì che molte persone ci vedano come nemici (ti piace pagare le persone per il software?) GPL, tuttavia, rende la maggior parte delle persone, ad eccezione dei Patricks del mondo, i nostri alleati ".
Michael Hampton,

Risposte:


72

L'azione di Xamarin e il modo in cui l'azione è stata etica o no?

Bene, chiediamo a un esperto: l'elenco della Open Source Initiative della Licenza MIT stessa, con la licenza citata nella sua interezza:

La licenza MIT (MIT)

Copyright (c)

L'autorizzazione è concessa, gratuitamente, a chiunque ottenga una copia di questo software e dei file di documentazione associati (il "Software"), per trattare il Software senza restrizioni, incluso senza limitazione i diritti di utilizzo, copia, modifica, unione , pubblicare, distribuire, concedere in licenza e / o vendere copie del Software e consentire alle persone a cui il Software è fornito di farlo, fatte salve le seguenti condizioni:

L'avviso di copyright di cui sopra e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA ALCUN TIPO DI GARANZIA, ESPRESSA O IMPLICITA, COMPRESO MA NON LIMITATO ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ A UNO SCOPO PARTICOLARE E SENZA VIOLAZIONE. IN NESSUN CASO GLI AUTORI OI TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI DI QUALSIASI RECLAMO, DANNO O ALTRO RESPONSABILITÀ, SE IN AZIONE DI CONTRATTO, TORT O ALTRO, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L'UTILIZZO O ALTRE OFFERTE NEL SOFTWARE.

Se qualcuno - individuo o azienda - rilascia software / codice sorgente con una licenza MIT, significa che chiunque - individuo o azienda può "trattare il software senza restrizioni". Finché l'informativa sul copyright rimane intatta, sono praticamente in grado di fare ciò che vogliono.

Questo è uno di quei casi in cui etica e legalità sono praticamente le stesse. Se una persona o un gruppo non ha compreso la licenza o le sue implicazioni, non è riuscito a fare la dovuta diligenza. L'Open Source Initiative fornisce molte altre belle risorse per aiutarci a capire le licenze come la variante MIT. Diamo un'occhiata ad alcune clausole della loro definizione Open Source:

1) Ridistribuzione gratuita - La licenza non deve impedire a nessuna parte di vendere o distribuire il software come componente di una distribuzione di software aggregata contenente programmi provenienti da più fonti diverse. La licenza non richiede una royalty o altra tassa per tale vendita.

3) Opere derivate - La licenza deve consentire modifiche e opere derivate e deve consentire la loro distribuzione agli stessi termini della licenza del software originale.

5) Nessuna discriminazione nei confronti di persone o gruppi - La licenza non deve discriminare alcuna persona o gruppo di persone.

6) Nessuna discriminazione nei confronti di Fields of Endeavour - La licenza non deve impedire a nessuno di utilizzare il programma in uno specifico campo di attività. Ad esempio, potrebbe non impedire che il programma venga utilizzato in un'azienda o utilizzato per la ricerca genetica.

Secondo la mia lettura, tutto ciò sembra abbastanza chiaro: rilasciare qualcosa come open source, specialmente con la licenza MIT, consente a qualcuno di prendere liberamente il software, cambiarlo, impacchettarlo e venderlo praticamente a chiunque piaccia, a condizione che non lo facciano ' rimuovere la nota sul copyright e rivendicarla come opera unica .

Come autore stai esplicitamente rinunciando al diritto di essere esigente e esigente. Non puoi decidere chi o cosa può trarre vantaggio dal tuo software o utilizzarlo e non puoi decidere perché lo stanno utilizzando. Rinunci esplicitamente a quel diritto.

L'idea è che stai contribuendo al bene superiore rinunciando esplicitamente a qualsiasi diritto legale che hai di controllare e limitare l'uso e il cambiamento di ciò che hai fatto. Se Microsoft vuole rovesciare il tuo progetto FluffBall e venderlo per $ 2k per postazione come WindowsSpongeCake, possono farlo. In primo luogo, non lasciare che le persone facciano tutto ciò che vogliono, tutto il punto del tuo progetto?

È possibile evitare una situazione del genere se si è un singolo sviluppatore o un piccolo gruppo non finanziato di sviluppatori?

Tipo! Innanzitutto, utilizza una licenza adatta a te e agli obiettivi e ai desideri della tua organizzazione. Se non vuoi che nessuno lo usi in un modo che non approvi, probabilmente non dovresti rilasciarlo come Open Source - e francamente forse non dovresti rilasciarlo affatto! Se non vuoi che nessuno utilizzi un lavoro derivato (come un fork) su un progetto commerciale, probabilmente dovresti scegliere una versione copyleft della GPL . Se si desidera una licenza non commerciale, è consigliabile rivolgersi a un avvocato specializzato in diritti d'autore / licenze, in quanto spesso questo non è considerato un software "open source" e non esiste alcuna licenza pre-scritta per supportare questo caso.

Il problema con il kerfuffle Xamarin e Coco non è una questione di etica o legalità: si tratta di una lotta su Internet tra alcune persone che hanno una mancia tra loro. Siamo tutti umani, succede. Sembra essere il risultato dell'incapacità di collaborare / cooperare, probabilmente a causa di un conflitto di personalità o di visioni incompatibili su come gestire il progetto.

Quindi l'altro modo di difendere è essere aperto alla collaborazione e al cambiamento, ma capisci che se non funziona e le visioni divergono ... beh, questa è la ragione per l'opzione di fare fork e avere il tuo progetto separato.

È molto umano e comprensibile per i sentimenti di proprietà e popolarità rendere i progetti software molto, molto complicati. Ma l'obiettivo dell'open source è cercare di trascenderlo e consentire al miglior software di essere disponibile liberamente per tutti.

In conclusione, sii chiaro sui tuoi obiettivi quando decidi una licenza e comprendi le implicazioni per il tuo futuro controllo e direzione del progetto. Se vuoi semplicemente donare al bene più grande, l'open source è la strada da percorrere. Se vuoi controllare il tuo progetto più strettamente e avere la proprietà e almeno un caso legale se qualcuno cerca di commercializzare il tuo progetto o di assorbirlo nel suo (in parte o interamente), avrai bisogno di una licenza diversa e probabilmente dovrai risolverlo con un avvocato.


35
Un pignolo sul linguaggio confuso: l'uso della GPL non limiterebbe l' uso commerciale , ma l' uso proprietario . Va benissimo vendere copie del software GPL a scopo di lucro. Devi solo rispettare le condizioni di licenza quando lo fai.
Bernd Jendrissek,

5
@BerndJendrissek: da un punto di vista teorico, hai ragione. Ma poiché ti viene richiesto di fornire i sorgenti al tuo software al tuo cliente insieme al binario, e il cliente è libero di ridistribuire gratuitamente il tuo software se lo desidera (e ci sono molte persone là fuori che lo prenderebbero in considerazione il loro dovere di farlo), le possibilità sono piuttosto scarse di fare molte vendite.
DevSolar,

8
@DevSolar - Anche se il codice sorgente è aperto e gratuito per la loro distribuzione, ciò non significa che lo siano altre risorse non di codice del progetto. Con un gioco, i media, le mappe, gli script, ecc. Potrebbero essere soggetti a una licenza diversa e potrebbe non essere legale per il cliente distribuirli. Per esempi, vedi en.wikipedia.org/wiki/List_of_open-source_video_games
corvec

7
@DevSolar: RMS stesso ha venduto il software GPL per molti anni per finanziare la FSF.
Martin Schröder,

5
Molte persone vendono GPL e altri codici open source. L'intero ecosistema di Joomla è costruito attorno a quello, così come quello di Drupal (in Joomla è più per il plug and play, per Drupal è più per il lavoro personalizzato ma in entrambi i casi è tutto GPL in vendita). A molti clienti piace avere una fattura con le garanzie che derivano da una transazione finanziaria, oppure a loro piace il marchio; guarda quante persone pagano per l'acqua in bottiglia.
Elin,

119

Rilasciare un progetto con la licenza del MIT sta dando alle persone il permesso di borsare il progetto. Parte della filosofia alla base del software libero è quella di dare agli utenti e agli sviluppatori il diritto di utilizzare, modificare e rilasciare il software in modi che normalmente non sarebbero consentiti. Se non vuoi che le persone facciano questo, non usare la licenza MIT. Non puoi davvero lamentarti quando le persone usano il codice secondo i termini della licenza che hai dato loro.

I fork sono una cosa abbastanza normale nella comunità del software libero. Sembra che gli sviluppatori del fork abbiano provato a contribuire al progetto originale e non siano d'accordo, quindi hanno contribuito al proprio progetto. Il software libero incoraggia ciò in modo che gli sviluppatori non possano impedire la modifica del software perché ai proprietari non piacciono le loro modifiche.

Inoltre, rilasciando qualcosa sotto una licenza di software libero, stai beneficiando dei contributi di altre persone, contributi che potresti non aver ricevuto se fosse sotto una licenza diversa. Se si accettano contributi in base a una licenza, è necessario rispettare personalmente i termini della licenza.

Un modo per mantenere il controllo su una versione ufficiale è fare affidamento su cose come i marchi. Mozilla Corporation, ad esempio, ha un marchio su Firefox che consente loro di dettare ciò che le persone possono fare con Firefox anche se è open source (vedi Iceweasel per il fork di questo).

Altre licenze come LGPL consentono ancora le forcelle, ma mantengono aperto il codice. In questo modo, puoi almeno incorporare eventuali modifiche dalla forcella nel tuo progetto originale e trarre vantaggio dallo sviluppo sulla forcella. Il codice LGPL può utilizzare qualsiasi codice con licenza MIT, quindi se si desidera un maggiore controllo sul progetto, è possibile utilizzare invece LGPL.


1
Vorrei aggiungere MPL come voce degna di nota all'elenco di altre licenze che consentono ancora le forcelle, ma mantengo aperto il codice.
mucaho,

Potresti toccare su come le licenze BSD si riferiscono a questo?
jpmc26,

2
@ jpmc26 - le licenze software sono documenti legali e non sono un avvocato, quindi per una risposta definitiva è necessario consultare un avvocato. Tuttavia, il consenso generale è che le licenze BSD e MIT X11 sono simili in ciò che fanno. Spesso vengono denominate " licenze accademiche ".
Scott Whitlock,

18

Non lo definirei non etico. Lo definirei antisportivo. C'è un'aspettativa non scritta che farai uno sforzo in buona fede per migliorare la versione originale prima di decidere di sborsare, e sembra che l'autore originale ritenga che lo sforzo in buona fede non sia stato fatto.

Detto questo, il modo migliore per evitare che il tuo software venga biforcuto è quello di rispondere alle richieste dei clienti in modo tale che il tuo software abbia un ricorso il più ampio possibile. Nessuno darà supporto a una forcella se sanno che l'originale è superiore. A parte questo, la tua unica protezione è cambiare i termini della licenza.


14
Se vuoi portare il software in una direzione diversa , cioè se ci sono cambiamenti che sarebbero un miglioramento per i tuoi obiettivi ma non accettati dall'attuale manutentore, allora fare un fork è completamente ragionevole - è così che generalmente accade. Modificare i termini della licenza in seguito è più facile a dirsi che a farsi - a meno che tu non sia l'unico autore o non sia d'accordo con tutti (non, diciamo, il 99%) che ha contribuito, quindi non puoi davvero farlo.
Peteris,

11
  • L'azione di Xamarin e il modo in cui l'azione è stata etica o no?

Molte persone stanno fondendo la situazione legale ed etica. La licenza X11 consente a chiunque di "utilizzare, copiare, modificare, unire, pubblicare, distribuire, concedere in licenza e / o vendere copie del Software e di consentire alle persone a cui il Software è fornito di farlo", quindi questo è assolutamente legale .

Eticamente, è più complicato. Nelle comunità open source, è generalmente preferibile migliorare il software originale piuttosto che creare un fork. Nel link che hai dato , Miguel de Icaza dice:

Come sapete, abbiamo contribuito ampiamente a Cocos2D-XNA e non abbiamo potuto continuare a lavorare insieme.

Una volta raggiunto un punto in cui non potevamo collaborare insieme, ho deciso di portare il progetto nella direzione che desideravo a scapito della retrocompatibilità.

Non è chiaro il motivo per cui "non hanno potuto collaborare insieme", ma sembra che Xamarin abbia fatto uno sforzo ragionevole per lavorare sul progetto originale prima di decidere di rovesciarlo.

  • È possibile evitare una situazione del genere se si è un singolo sviluppatore o un piccolo gruppo non finanziato di sviluppatori?

Legalmente, potresti scegliere di utilizzare una licenza che non consente il biforcazione vietando la ridistribuzione del codice sorgente (a questo punto, non sarebbe "software libero"). Un'altra opzione è quella di lasciare il codice libero, ma non consentire la ridistribuzione di risorse statiche come immagini o testo senza codice (alcuni giochi hanno licenze come questa).

Socialmente, puoi prevenire il biforcazione:

  • Rendere facile per le persone contribuire con le modifiche al tuo progetto.
  • Revisione rapida delle patch.
  • Consentire modifiche che non ti avvantaggiano direttamente.
  • Essere educato. Un numero sorprendente di forcelle è dovuto al fatto che i collaboratori non sono più disposti a collaborare.

Il software di forking richiede molto lavoro e la maggior parte delle persone sane non lo faranno se hanno un'opzione più semplice. Se non hanno altra scelta, impedendo loro di forzare il tuo codice, li costringerai a forzare il codice di qualcun altro o riscrivere il tuo software da zero. Potrebbe rallentarli, ma non ti aiuterà molto.

Inoltre, l'utilizzo di una licenza più restrittiva renderà alcune persone meno propensi a contribuire. Apparentemente Xamarin "ha contribuito ampiamente a Cocos2D-XNA", e dubito che lo avrebbero fatto se la licenza non gli avesse permesso di ridistribuirlo.


1
Affermate che le persone stanno fondendo la situazione legale ed etica e addirittura affermano che Eticamente è più complicato, ma non fornite alcun motivo per sostenere tali affermazioni. In altre parole, cosa vedi come una complicazione etica nel fork del software?
NotMe

1
Penso che siano più norme sociali che etiche. Non si tratta di morale / immorale, si tratta di "questo è come le cose vengono fatte". Nel complesso @BrendanLong ha ragione sul fatto che le forcelle sono una quantità folle di lavoro ed è per questo che la maggior parte delle forcelle fallisce, molte altre finiscono per essere rimosse quando prevalgono le teste più fredde e generalmente le persone cercano di evitarle.
Elin,

@ChrisLively La situazione è davvero "complicata". Quello che stavo cercando di fare nella risposta è stato sottolineare che potrebbe non essere etico fork di un software, ma sembra che Xamarin abbia fatto la cosa giusta in questo caso. Le ragioni per cui potrebbe non essere etico il fork del software sono perché essere responsabili di un importante progetto open source porta alle persone un certo rispetto e talvolta denaro (le persone tendono a preferire ricevere supporto dai manutentori di un progetto). Il software di forking in genere lo porterà via e non dovrebbe essere fatto solo perché vuoi essere il responsabile.
Brendan Long,

2
Ad esempio, è probabile che Cocos2D-XNA perda molti sviluppatori, dal momento che il fork di Xamarin sta improvvisamente ottenendo un sacco di supporto aziendale e Cocos2D-XNA sta perdendo il loro. È del tutto logico che il manutentore sia arrabbiato, dal momento che ha creato un progetto open source che a questo punto è probabilmente un vicolo cieco. D'altra parte, Xamarin sembra avere una buona ragione per farlo.
Brendan Long,

10

Quello che Xamarin ha fatto è legale ed etico ... quasi.

Diamo un'occhiata al fixup di commit della licenza e correzioni di errori di battitura nel readme :

LicenseAndCredit.txt (diff)

-Copyright (c) 2010-2012 cocos2d-x.org
-
-Copyright (c) 2008-2010 Ricardo Quesada
-Copyright (c) 2011      Zynga Inc.
-Copyright (c) 2011-2012 openxlive.com
-Copyright (c) 2012      Totally Evil Entertainment, LLC
-Copyright (c) 2012      Gena Minchuk
-Copyright 2012 Xamarin Inc
+Copyright (c) The Cocos2D-XNA Team

C'è un solo requisito nell'intera licenza MIT:

L'avviso di copyright di cui sopra e questo avviso di autorizzazione devono essere inclusi in tutte le copie o parti sostanziali del Software.

E Xamarin ha fatto esattamente la cosa proibita. Xamarin potrebbe pensare che rende la licenza "più carina" avere meno avvisi di copyright in alto, ma non hanno il permesso (legale o etico) di rimuovere la "ridondanza".

Naturalmente, se correggono il file di licenza, saranno di nuovo nell'area legale. L'autore della biblioteca originale potrebbe non essere d'accordo, ma ha fatto la scelta della licenza e non può incolpare nessuno che abbiano fatto ciò che la licenza consente esplicitamente.


3
Questo ^ solo uno per andare direttamente alla fonte. +1
Ryan,

25
Quella modifica non sembra avere origine nella base di codice biforcuta . Ancora più importante, è stato da Jacob Anderson , membro del team Cocos2D-XNA e colui che ha obiettato al fork . Al contrario, Miguel de Icaza è colui che ha fatto il fork . Mi sto perdendo qualcosa? O hai attribuito le rimozioni alla persona e al progetto sbagliati?
Eliah Kagan,

3
Era il settembre 2013? Sono confuso sui tempi se questo fa parte di un fork che è appena successo.
Elin,

9
@Elin Sì, penso che diff sia un'aringa rossa. Per quanto posso vedere, non è stato fatto da nessuno di Xamarin ed è successo molto prima del fork. Non credo che sia coinvolta alcuna malafede qui, ma questo post sembra certamente una falsa accusa di illecito.
Eliah Kagan,

5
-1. Tale modifica è stata apportata in Cocos2D-XNA, prima che si verificasse il fork. Ecco la stessa modifica in Cocos2D-XNA.
David Hammen,

4

Sarebbe losco consentire alle persone di trarre conclusioni errate sulla paternità di qualunque codice le navi fork, anche se le legittimità sono coperte fornendo gli avvisi e la cronologia delle revisioni necessari per chiunque scelga di guardare da vicino. Quindi forse la presentazione di Xamarin non è etica, forse non lo è, ma penso che sia la base su cui giudicarla: fuorvia?

La licenza prevede il permesso di utilizzare il codice e l'obbligo di includere avvisi di copyright pertinenti con copie del codice. È tutto a un livello piuttosto basso. Non discute come dovresti riassumere pubblicamente chi ha contribuito, ma solo perché è al di fuori dell'ambito della licenza e non parte dell'accordo legale non significa che nulla vada eticamente . L'etica varia, ma dare credito onesto laddove dovuto è un principio abbastanza diffuso, quindi è facile capire perché non farlo offenderà.

Come tutti dicono che nella licenza del MIT non esiste alcuna intenzione di prevenire le forcelle, quindi non è etico di per sé. Se "rinominalo come tuo" è il codice per "fai dichiarazioni pubbliche di credito che non meriti", allora sarebbe sicuro che non sarebbe etico se fosse vero.

Per quanto riguarda la prevenzione che ti accada: se vuoi evitare che qualcun altro insinui che il tuo codice è il loro, allora hai bisogno di una voce forte quando chiedi credito. Se vuoi evitare la situazione di qualcuno che crea un fork del tuo codice che alla fine potrebbe rivelarsi più popolare del tuo originale (a causa delle loro maggiori risorse o solo della loro attenzione alle "giuste" esigenze degli utenti), penso che tu sia fuori di fortuna in OSS. Non puoi semplicemente decidere di avere ragione se un altro gruppo desidera funzionalità diverse nel software da ciò che desideri e se (a giudizio degli utenti) ti sbagli, dovresti perdere indipendentemente dal fatto di essere lì per primo. Questa è una conseguenza del principio primario open source (o correttamente, principio del software libero) secondo cui l'autore non controlla il software, le persone che lo eseguono lo fanno.


2

Un'espansione del tema del marchio:

Alla Apache Software Foundation, tutto il codice è AL. E, come con la licenza BSD in discussione qui, è perfettamente chiaro che l'AL consente forcelle. Periodo. Fine della discussione. In effetti, come discusso in altre risposte, tutte le vere licenze open source consentono fork. Tutto ciò che controllano è la licenza / l'utilizzo del codice biforcato.

La fondazione Apache ha scelto di registrare e difendere i marchi. Se qualche entità diversa da un progetto di fondazione si biforca, oh, "Apache Tomcat", stanno bene ... ma non possono chiamarlo Apache Tomcat e, quando possiamo difendere il marchio, non possono chiamarlo Tomcat .

Il problema qui è che i marchi non sono per i deboli di cuore. Se sei un piccolo gruppo di persone, senza struttura legale e senza finanziamenti, non puoi praticamente usare la legge sui marchi per proteggere il tuo nome.

Alla fine, questo genere di cose è una delle ragioni per le varie basi là fuori.

Da un punto di vista etico, beh, se c'è una fissione interna tra i contributori, chi può dire chi "merita" di mantenere il nome? Se, d'altra parte, un forestiero forchette, probabilmente non è la cosa più etica al mondo lasciare invariato il nome. Non è nemmeno un atto atroce.

Github è pieno di forchette . A volte le persone cambiano il nome, il pacchetto Java o qualsiasi altra cosa, in particolare se vogliono pubblicare su Maven central. Spesso non lo fanno e gli utenti restano a navigare in un labirinto di confusione. Non è l'ideale, ma sono le rotture dell'anarchia.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.