Come posso creare la mia licenza software? [chiuso]

15

Ho visto numerose licenze per qualsiasi tipo di software come GNU GPL, licenza BSD, licenza MIT e LGPL. Qual è il processo per la creazione di una nuova licenza software, come "La licenza generica di John Doe"?

    
posta Rrjrjtlokrthjji 24.10.2012 - 22:02
fonte

5 risposte

26
  1. Apri un editor.
  2. Scrivi termini di licenza.
  3. Salva file.
  4. Includi nel progetto.

In generale, questo è tutto ciò che c'è da fare. Scherzi a parte.

Non mi credi? Controlla la licenza di Do not Be A Dick di Phil Sturgeon (così come il WTFPL che l'ha ispirato).

Detto questo, è incerto se le licenze software siano legalmente applicabili , anche se un avvocato ha scritto loro (almeno negli Stati Uniti, e dipende quasi interamente dal capriccio del giudice o dall'autorità governativa sul copyright). Più in generale, tuttavia, in qualità di autore del software, sei già coperto dalle leggi sul copyright del tuo paese (presumendo che tu abbia adottato le misure per il copyright del tuo lavoro; negli Stati Uniti, in realtà è che fa lavoro).

Si riduce a ciò che si desidera ottenere con la propria licenza, al di là e al di là delle leggi sul copyright. Nel caso di licenze come la licenza DBaD di Phil, è in gran parte una questione di onore e reciproco rispetto reciproco.

Se vuoi che sia legalmente applicabile (o almeno abbia la possibilità di farlo), ad esempio rilasciando un prodotto di origine chiusa, molto probabilmente vorrai parlare con un avvocato. In questo modo, puoi assicurarti che non vi siano scappatoie appariscenti e puoi farlo scrivere in modo tale che un giudice / un partito al potere abbia più probabilità di decidere a tuo favore nel caso in cui qualcuno lo violi.

EllisLab (la società dietro CodeIgniter) ha un'ottima spiegazione delle licenze software (e intero settimana dei blog sull'argomento, infatti), sia dal punto di vista legale, sia dal punto di vista di uno sviluppatore FLOSS e del principio di onore che ho menzionato sopra.

(Disclaimer: non sono un avvocato, questo non è un consiglio legalmente vincolante, blah, blah, blah. Sono solo uno sviluppatore che ha fatto il tip-tip in giro per il campo minato legale che è lo sviluppo del software e le licenze. In caso di dubbio, parla con qualcuno che è effettivamente un avvocato, idealmente con un copyright, un brevetto e / o un focus sulle licenze.)

    
risposta data 24.10.2012 - 22:27
fonte
15

Rispondi alle seguenti domande per l'utente del tuo software:

  1. Il tuo prodotto è open source, cioè posso ottenere una copia del codice sorgente?

    • Come posso usare il tuo codice sorgente? Posso copiarlo liberamente nelle mie applicazioni o devo collegarmi al tuo binario? Se utilizzo il tuo codice nella mia applicazione, esiste un limite alla quantità di codice che posso utilizzare? Devo includere la tua licenza o l'intestazione di attribuzione nella parte superiore di qualsiasi file sorgente che ridistribuisco che contenga il tuo codice o nella casella Aiuto / Informazioni del mio file binario?
  2. Che cosa posso fare con il tuo prodotto? Posso usarlo su un solo computer? Posso usarlo su più di un computer? Posso ridistribuirlo o rivenderlo?

  3. Se utilizzo il tuo prodotto come parte di un'altra applicazione che scrivo, devo anche essere open source?

  4. Come garantite il vostro prodotto? Sei legalmente responsabile se ho problemi?

  5. Quali sono i tuoi termini di ridistribuzione? Posso ridistribuire il tuo prodotto come parte di un prodotto che scrivo? Se fornisci la fonte, posso modificare la tua biblioteca e ridistribuire le modifiche, e in tal caso, quali condizioni devo soddisfare?

Studia altre licenze e guarda come hanno risposto a queste domande.

    
risposta data 24.10.2012 - 22:16
fonte
6

In realtà è sorprendentemente simile a ciò che fanno gli sviluppatori:

Fornisci a un avvocato (o al dipartimento legale di una grande azienda) un elenco di requisiti per ciò che la licenza consente e cosa non consente (ad esempio, la licenza è per un solo utente, è temporanea, non è possibile utilizzare il software per alcuni scopi, ecc.) e "traducono" questo in un avvocato, quasi come se traducessimo i requisiti in codice.

Ad esempio, "la licenza è per un solo utente" è solitamente tradotta in qualcosa di simile a questo: "FooCorp Inc. ti concede una licenza unica, non esclusiva e non trasferibile per installare e utilizzare FooSoftware per .. . ".

Si potrebbe pensare che questo non si applica alle licenze F / OSS, ma è più o meno lo stesso, tranne i requisiti sono diversi: è possibile trovare la versione più semplice di questi requisiti in link .

Ma la parte dell'avvocato è essenziale e non ha senso tentare di scrivere una licenza da soli (a meno che tu non sia un avvocato con molta esperienza in diritto IP e diritto internazionale). Qualcuno troverà una comoda scappatoia, che gli permetterà di usare il tuo prodotto nel modo che gli piace (io andrei fino a paragonarlo agli exploit).

Naturalmente non pretendo che questa spiegazione sia completa o addirittura corretta, ma è un abbozzo del processo, per quanto riguarda gli sviluppatori di software (quindi lo paragono al lavoro di un programmatore).

    
risposta data 24.10.2012 - 22:17
fonte
4

Per rispondere alla tua domanda, chiunque può scrivere una licenza - e mostra!

Quelli di noi che usano il software per costruire cose e in realtà cercano di rispettare ogni licenza sono pronti a scagliare i nostri occhi con un hot poker ogni volta che qualcuno parla di crearne uno nuovo. Ci sono già un numero innumerevole di licenze software nel mondo. Il 99% di questi sono quasi duplicati di licenze esistenti e più popolari, tranne che non sono altrettanto ben pensate.

Un sito a cui contribuisco ha una licenza di tipo di attribuzione non commerciale creative-commons locale, tranne che non dice nulla sui lavori derivati. Sono ammessi? Possono essere distribuiti con la stessa licenza? Mi batte!

Se altre persone contribuiscono a un progetto e tu vuoi o devi cambiare la licenza, devi farle accettare tutte per cambiare la licenza, o sei più o meno bloccato con esso per sempre. Alcuni di loro potrebbero diventare irraggiungibili o addirittura morire. Non sono un avvocato, ma se non hai un contratto firmato da tutti che ti permetta di prendere decisioni sulla tua licenza, penso che tu sia SOL.

È davvero difficile scrivere una buona licenza. Anche le migliori licenze software sono piene di buchi. Periodicamente sono disponibili nuove versioni delle licenze Apache e GPL. Per favore, vedi se riesci a trovare una licenza che soddisfi il 90% delle tue esigenze e usarla. L' eccezione per il collegamento GPL o "Eccezione del percorso di classe" è un ottimo esempio di questo. Sono un po 'preoccupato per la dichiarazione rilasciata da alcuni anni sul sito da parte degli Hibernate, fondamentalmente interpretando erroneamente la GPLv2 pubblicamente per far sembrare che includesse l'eccezione Classpath. È l'eccezione del classpath? Non lo sapremo a meno che qualcuno non li faccia causa.

Mi sembra che ottenere causa è il modo più doloroso per eseguire il debug della tua licenza. Se usi una licenza che le persone hanno già citato in giudizio, c'è una certa sicurezza che funzioni, e anche un senso di come funziona. Meglio ancora, scegli una licenza che è stata in tribunale in diversi paesi. Hai pensato a come la tua licenza verrebbe interpretata in altre parti del mondo?

Se basi la tua licenza su una esistente, le persone che si preoccupano di rispettare i termini della tua licenza potrebbero non doverla studiare per anni per capire esattamente cosa significa.

Se possibile, ti incoraggerei a dedicare le tue energie e talenti a migliorare una licenza esistente piuttosto che scriverne una nuova.

Mi spiace essere una tale gioia-uccisione. Se sono amareggiato, è perché leggo davvero e cerco di rispettare le licenze delle persone prima di utilizzare i loro lavori.

    
risposta data 24.10.2012 - 23:08
fonte
3

Annota i termini, pubblicali con il tuo software. Questo è tutto.

Una domanda, tuttavia, è perché vuoi? Non è improbabile che le condizioni che desideri aggiungere siano già presenti in un'altra licenza comunemente utilizzata.

Aggiunge un passaggio preliminare - controlla se devi effettivamente creare una licenza.

È anche probabile che alcune delle condizioni che desideri applicare siano imperfette in qualche modo; aggiungendo un altro passaggio preliminare - leggi i termini "univoci" che desideri applicare. È probabile che qualcuno abbia provato questi termini e li abbia trovati inapplicabili o controproducenti in qualche modo.

    
risposta data 24.10.2012 - 22:34
fonte

Leggi altre domande sui tag