Una licenza open source che non consente agli utenti di compilare l'applicazione se non l'hanno acquistata? [chiuso]

StackOverflow https://stackoverflow.com/questions/179764

  •  05-07-2019
  •  | 
  •  

Domanda

Sto sviluppando software GPL da anni, ma ora ho bisogno di una licenza più restrittiva.

Questo è per un'applicazione commerciale e voglio condividere il mio codice sorgente con tutto il mondo, indipendentemente dal fatto che abbiano acquistato l'applicazione da me o meno. Voglio anche permettere alle persone di produrre opere derivate, ma voglio proibire la distribuzione binaria sia del mio lavoro originale, sia di quello di qualsiasi lavoro derivato.

Fondamentalmente, se qualcuno ha già acquistato l'opera originale, può compilare e utilizzare il codice sorgente originale o qualsiasi opera derivata. Altrimenti, possono studiare solo il mio codice sorgente o quello di un'opera derivata.

Qualcuno conosce una licenza adatta alle mie esigenze o devo scriverne una mia?

Grazie,

UPDATE:

Prima di tutto, grazie a tutti per le risposte.

Vorrei chiarire alcune cose:

  1. Questa applicazione non è ancora stata rilasciata. Quindi non sto adottando una nuova licenza come XFree86, sto cercando di scegliere una licenza per una nuova applicazione.

  2. Di solito uso il termine "software libero" anziché open source, ecco perché ho usato il termine open source qui. La fonte sarà "aperta" anzi, non proprio come l'OSI lo definisce.

  3. Sono tutto per GPL e quasi tutto il software che ho scritto prima è stato rilasciato sotto GNU GPL v2. Ma questo deve essere un'eccezione.

  4. Non mi interessa davvero se le persone violano la licenza. Non mi sognerei di fare causa a nessuno per quello, a meno che non vendessero il mio software.

Ora non sto suggerendo di aver scritto un software molto speciale, ma non voglio che le persone facciano soldi rubando il mio codice. Ma voglio anche che gli utenti esperti di tecnologia siano in grado di modificare il software in qualsiasi modo ritengano opportuno.

Oh, e infine, l'applicazione è scritta in un linguaggio compilato (Objective-C, per essere precisi * tosse * iPhone * tosse *).

È stato utile?

Soluzione

che non è OS , sembra una fonte condivisa. In particolare, è molto simile a Ms-RSL.

Da WikiPedia :

  

Licenza Microsoft Reference Source (Ms-RSL)

     

Questa è la più restrittiva delle licenze di Microsoft Shared Source. Il codice sorgente è reso disponibile per la visualizzazione a solo scopo di riferimento. [14] Gli sviluppatori non possono distribuire o modificare il codice per scopi commerciali o non commerciali.

Altri suggerimenti

A proposito, sarà del tutto impossibile impedire alle persone di mantenere l'ultima versione di GPL che hai rilasciato. Se ci sono abbastanza persone che vogliono usare il tuo software, dovresti andare in questa impresa con l'aspettativa che una comunità si costruirà dietro la versione GPL, i suoi nuovi manutentori corrisponderanno alla tua caratteristica per funzione e sarai considerato un paria in quei circoli.

Non intendo questo come una minaccia, ma come lo schema che ho visto svilupparsi attorno a queste azioni in passato. XFree86 ha adottato una licenza più restrittiva, molti contributori l'hanno convertita in X.org e XFree86 ora è poco più che un'ombra del suo vecchio io. cdrecord ha generato cdrtools. SSH generò OpenSSH. Fondamentalmente, il track record di il software libero che passa a una licenza restrittiva è disseminato di progetti commerciali morti. Sei sicuro che sia quello che vuoi?

Alternative: consente agli utenti di acquistare le funzionalità richieste e rilasciarle sotto licenza GPL. Fornire servizio di installazione e configurazione. Vendi contratti di supporto. Vendi formazione. Ognuno di questi ha molte più probabilità di successo rispetto a quello che stai proponendo.

Non sarebbe una licenza open source. Tuttavia, puoi sicuramente avere una licenza proprietaria che dice esattamente quello che intendi. Molti abiti che vendono componenti fanno esattamente quello di cui stai parlando, con l'eccezione che di solito non forniscono fonte fino a quando non hai pagato.

Non c'è nulla che ti impedisca di farlo, ma penso che la realtà della situazione sia che una volta che la tua fonte sarà disponibile, qualcuno la compilerà (probabilmente molte persone). Quanto sarà facile prevenire la ridistribuzione dei file binari ... ???

Non puoi spedire il codice con una licenza e poi dire alle persone che non farai rispettare la licenza. Ciò sta chiedendo loro di correre un rischio legale inaccettabile. Cosa ti impedisce di cambiare idea? Dovresti essere in anticipo con i termini in base ai quali stai concedendo la licenza del codice.

Il problema è che una volta che si fa uscire il codice sorgente, è molto difficile tenere traccia di dove atterra. Indipendentemente da come lo autorizzi, le persone senza scrupoli potrebbero non farci ciò che preferisci.

Un approccio è quello di fornire most , ma non tutto il codice con un'adeguata licenza conforme a OSI (vedere opensource.org per un elenco delle attuali licenze approvate OSI). Alcune librerie o kernel di basso livello forniti in forma di codice oggetto e venduti o altro. Senza il kernel compilato il codice non verrà eseguito. Gli utenti possono comunque visualizzare le parti interessanti del codice, possono modificarlo se lo desiderano. Potrebbero persino ridistribuirlo, ma non funzionerebbe senza il kernel compilato di basso livello. Il rischio è che qualcuno possa decodificare il kernel, ma con un po 'di intelligenza puoi renderlo difficile. Puoi anche consegnare il kernel con un EULA che proibisce il reverse engineering. Pertanto, puoi intraprendere un'azione legale contro qualcuno che lo fa. Penso che questo ti fornisca ciò che stai cercando: la possibilità di condividere il codice, ma impedire ad altri di trasformarlo in un prodotto in vendita.

Cordiali saluti: IANAL, questi sono solo i miei pensieri personali in merito.

Non penso che questo si qualificherebbe come "open-source" licenza ai sensi della Definizione open source .

In generale, tuttavia, dovresti essere in grado di mostrare la tua fonte alle persone senza che loro possano automaticamente compilarla. Fintanto che chiarisci che ti riservi ancora tutti i diritti, la versione compilata sarebbe probabilmente considerata un "lavoro derivato".

Se è un ottimo programma, probabilmente la gente lo ruberà. C'è poco che puoi fare a riguardo tranne che denunciarli in seguito (se lo prendi). In generale, mostrare la tua fonte senza rilasciarla come open source non sembra una buona idea.

Altri ti hanno già detto che ciò che stai descrivendo non è "open source". come di solito è compreso. Non c'è nulla che vieti di distribuire la fonte con una licenza commerciale.

In effetti (e come altro esempio), atlassian , produttori di jira, confluenza e altre gemme, forniscono il loro codice sorgente dopo aver acquistato una licenza dei loro prodotti commerciali. Puoi modificare, applicare patch e utilizzarlo, ma non ridistribuire.

(Non sono associato ad Atlassian se non ad essere un utente di alcuni dei loro prodotti)

IANAL, ma suggerirei di scrivere la tua licenza per questo tipo di cose. Non ho mai incontrato una licenza specifica per la compilazione come hai menzionato. Dai un'occhiata ad alcune licenze come punto di partenza che puoi usare come modello. Se sei seriamente intenzionato ad avere qualcosa che possa resistere in tribunale, avrai bisogno di una consulenza legale prima di pubblicare.

Una licenza opensource (per definizione) non soddisfa i tuoi requisiti.

Ma potresti dare un'occhiata alla Licenza di riferimento Microsoft di riferimento: consente di visualizzare il codice sorgente ma proibisce la distribuzione: http://www.microsoft.com/resources/sharedsource/referencesourcelicensing.mspx

È hacker, ma l'ho visto fatto: distribuire il codice come una serie di schermate.

È "pubblicato", ma non compilabile.

Ma per arrivare al nocciolo della tua domanda, distribuire la fonte senza permettere alla gente di compilarla è chiaramente NON FLOSS-y.

Si noti che una versione eseguibile del codice sorgente potrebbe essere vista come opera derivata .

Le differenze tra il codice sorgente e la versione eseguibile scompaiono anche se scrivi la tua applicazione in una lingua come Perl, Ruby, Python, ecc.

Tuttavia, la licenza che stai cercando non è una licenza open source e mi sembra che tu voglia condividere algoritmi e suggerimenti di implementazione invece del codice sorgente completo di un prodotto. In tal caso, basta farlo e pubblicare algoritmi insieme a un codice sorgente di esempio.

In questo modo, nessuno può ricompilare il tuo prodotto senza la tua autorizzazione (che significa: una copia della fonte completa) e gli sviluppatori interessati possono ancora utilizzare i tuoi algoritmi e basarsi su di esso.

Potresti implementare un processo di compilazione della proprietà, quindi anche se hanno il sorgente, non può essere compilato senza il 'builder' della proprietà.

  

Ora non sto suggerendo di aver scritto   un software molto speciale, ma   Non voglio che le persone facciano soldi   rubando il mio codice. Ma voglio anche   gli utenti esperti di tecnologia per poterlo fare   modificare il software comunque vedono   in forma.

Quindi vuoi consentire le modifiche, ma non vuoi consentire l'uso commerciale?

Forse stai cercando qualcosa come una licenza Creative Commons Non commerciale e forse NoDerivs?

In una successiva modifica, hai scritto:

  

Non mi interessa davvero se le persone violano la licenza. Non mi sognerei di fare causa a nessuno per quello, a meno che non vendessero il mio software.

Se non ti interessa se le persone violano le restrizioni nella licenza, evidentemente ciò significa che la tua nuova restrizione non è pertinente. La GNU GPL non modificata dovrebbe essere altrettanto valida per i tuoi scopi come in precedenza.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top