Come evitare di essere biforcati nel dimenticatoio da un contributore più potente?

115

Come riportato di recente qui :

Xamarin has forked Cocos2D-XNA, a 2D/3D game development framework, creating a cross-platform library that can be included in PCL projects.

Tuttavia il fondatore del progetto che è stato biforcuto dice :

The purpose of the MIT license is to unencumber your fair use. Not to encourage you to take software, rebrand it as your own, and then "take it in a new direction" as you say.

While not illegal, it is unethical.

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

Quindi le mie domande sono:

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

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

    
posta Den 20.08.2014 - 22:10
fonte

7 risposte

71

Was Xamarin's action and the way the action was done ethical or not?

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

The MIT License (MIT)

Copyright (c)

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

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

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

1) Free Redistribution - The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

3) Derived Works - The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

5) No Discrimination Against Persons or Groups - The license must not discriminate against any person or group of persons.

6) No Discrimination Against Fields of Endeavor - The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

Alla mia lettura questo sembra tutto molto chiaro: pubblicare qualcosa come open source, specialmente con la licenza MIT, permette a qualcuno di prendere liberamente il software, cambiarlo, impacchettarlo e venderlo praticamente a chiunque piaccia, purché non rimuovono la tua nota sul copyright e pretendono che sia il proprio solo lavoro.

Come autore, stai esplicitamente rinunciando al diritto di essere pignolo e schizzinoso. Non puoi decidere chi o cosa può trarre beneficio dal tuo software o farne uso, e non puoi decidere perché lo stanno usando. Hai espressamente rinunciato a questo diritto.

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

Is it possible to avoid such a situation if you are a single developer or a small unfunded group of developers?

Tipo di! Innanzitutto, utilizza una licenza appropriata per te e per gli obiettivi e i desideri della tua organizzazione. Se non vuoi che qualcuno 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 qualcuno usi un lavoro derivato (come una fork) su un progetto commerciale, dovresti probabilmente optare per una versione copyleft di la GPL . Se si desidera una licenza non commerciale, è consigliabile rivolgersi a un avvocato specializzato in diritto d'autore / licenza, poiché spesso non è considerato software "open source" e non esiste alcuna licenza pre-scritta per supportare questo caso.

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

Quindi l'altro modo di difesa è aperto alla collaborazione e al cambiamento, ma comprendi che se non funziona e le visioni divergono ... beh, questo è il motivo dell'opzione di fork e avere il tuo progetto separato.

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

In conclusione, chiarisci i tuoi obiettivi quando decidi una licenza e comprendi le implicazioni per il tuo futuro controllo e direzione del progetto. Se vuoi solo 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 assorbirlo nel proprio (in tutto o in parte), avrai bisogno di una licenza diversa e probabilmente avrai bisogno di sistemalo con un avvocato.

    
risposta data 20.08.2014 - 23:26
fonte
119

Il rilascio di un progetto con la licenza MIT sta dando alle persone il permesso di sborsare il progetto. Parte della filosofia alla base del software libero è quella di fornire 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, allora non usare la licenza MIT. Non puoi davvero lamentarti quando le persone usano il codice sotto i termini della licenza che gli hai fornito.

Le forcelle sono una cosa abbastanza normale da accadere nella comunità del software libero. Sembra che gli sviluppatori della forcella abbiano cercato di contribuire al progetto originale, e non erano d'accordo, quindi hanno contribuito al proprio progetto. Il software gratuito incoraggia questo in modo che non venga impedito agli sviluppatori di modificare il 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 accetti i contributi con una licenza, dovresti rispettare da solo 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 la parte di questo).

Altre licenze come LGPL consentono ancora il fork, ma tieni il codice aperto. In questo modo, è possibile includere almeno eventuali modifiche dalla forcella nel progetto originale e trarre vantaggio dallo sviluppo sulla forcella. Il codice LGPL può utilizzare qualsiasi codice concesso in licenza dal MIT, quindi se volessi un maggiore controllo sul progetto, potresti usare invece LGPL.

    
risposta data 20.08.2014 - 22:43
fonte
18

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

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

    
risposta data 21.08.2014 - 00:10
fonte
12

Che cosa ha fatto Xamarin è legale ed etico ... quasi.

Diamo un'occhiata alla correzione della licenza e alle 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

Esiste un solo requisito nell'intera licenza MIT:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

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

Ovviamente, 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 abbia fatto ciò che la licenza consente esplicitamente.

    
risposta data 21.08.2014 - 20:53
fonte
11
  • Was Xamarin's action and the way the action was done ethical or not?

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

Tuttavia, dal punto di vista etico, è più complicato. Nelle comunità open source, è generalmente preferibile migliorare il software originale piuttosto che creare un fork. In il link che hai fornito , Miguel de Icaza dice:

As you know, we contributed extensively to Cocos2D-XNA and we just could not continue to work together.

Once we reached a point where we could not collaborate together, I decided to take the project in the direction that I desired at the expense of backwards compatibility.

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

  • Is it possible to avoid such a situation if you are a single developer or a small unfunded group of developers?

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

Socialmente, puoi impedire la biforcazione di:

  • Semplificare le persone a contribuire con le modifiche al tuo progetto.
  • Revisione rapida delle patch.
  • Consentire modifiche che non ti avvantaggino direttamente.
  • Essere educato. Un numero sorprendente di fork è dovuto al fatto che i contributori non sono più disposti a collaborare tra loro.

Il software di forking è molto impegnativo e la maggior parte delle persone sane non lo faranno se hanno un'opzione più semplice. Se non hanno altra scelta, quindi impedire loro di forking il tuo codice li costringerà a biforcarsi il codice di qualcun altro o riscrivere il tuo software da zero. Potrebbe rallentarli, ma in realtà non ti aiuterà molto.

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

    
risposta data 21.08.2014 - 22:13
fonte
4

Sarebbe oneroso permettere alle persone di trarre conclusioni errate sulla paternità di qualsiasi codice che la forcella porta, anche se gli aspetti legali sono coperti fornendo gli avvisi necessari e la cronologia delle revisioni 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: è fuorviante?

La licenza stabilisce il permesso di utilizzare il codice e un requisito per includere le note sul copyright pertinenti con copie del codice. Questo è tutto a un livello piuttosto basso. Non discute come dovresti riepilogare pubblicamente chi ha contribuito a cosa, ma solo perché questo è al di fuori della portata della licenza e non parte dell'accordo legale non significa che qualcosa vada eticamente . L'etica varia, ma dare un credito onesto laddove è un principio abbastanza diffuso, quindi è facile capire perché non farlo è offensivo.

Come tutti dicono che non c'è intenzione nella licenza del MIT di prevenire le forche, quindi non è immorale da parte sua. Se "rebrandarlo come il tuo" è un codice per "fare affermazioni pubbliche di credito che non meriti", assicurati che non sarebbe etico se fosse vero.

Per evitare che succeda a te: se vuoi evitare la situazione di qualcun altro che insinua che il tuo codice è il loro, allora hai bisogno di una voce strong quando rivendichi credito. Se vuoi evitare la situazione di qualcuno che crea un fork del tuo codice che alla fine potrebbe rivelarsi più popolare dell'originale (a causa delle loro maggiori risorse o semplicemente della loro attenzione alle esigenze dell'utente "giusto"), allora penso che tu sia fuori di fortuna in OSS. Non puoi semplicemente decidere di avere ragione se un altro gruppo vuole caratteristiche diverse nel software da quello che vuoi, e se (secondo gli utenti) ti sbagli, dovresti perdere, indipendentemente dal fatto che tu sia lì per primo. Questa è una conseguenza del principio dell'open source primario (o, correttamente, del principio del software libero) che l'autore non controlla il software, le persone che lo gestiscono lo fanno.

    
risposta data 21.08.2014 - 01:40
fonte
2

Un'espansione dell'argomento del marchio:

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

La fondazione Apache ha scelto di registrare e difendere i marchi. Se qualche entità diversa da un progetto di base si biforca, oh, 'Apache Tomcat', stanno bene ... ma non possono chiamarlo Apache Tomcat e, quando possiamo difendere il marchio, non possono chiamare 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 utilizzare la legge sui marchi per proteggere il tuo nome.

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

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

Github è pieno di fork . 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 sono lasciati alla deriva in un labirinto di confusione. Non è l'ideale, ma sono le interruzioni con l'anarchia.

    
risposta data 24.08.2014 - 18:02
fonte

Leggi altre domande sui tag