Posso utilizzare la licenza MIT per fornire parte del mio precedente codice scritto al datore di lavoro in modo da proteggermi e non perdere il copyright?


17

La mia situazione:

  • Ho scritto un framework prima di iniziare il mio nuovo lavoro. Possiedo il copyright.

  • Al suo interno ha un sacco di logiche di tipo plateplate, come qualsiasi altro software. (Duh!)

  • Non voglio utilizzare l'intero framework nel mio nuovo lavoro, ma ho bisogno di riutilizzarne alcune parti in un framework simile che sto costruendo per il mio nuovo lavoro.

  • Non è pratico reimplementare / ripensare tutta la logica da zero. È molta logica e la logica è logica, non puoi renderla molto diversa. Ad esempio, quante diverse versioni di un HashMap puoi codificare? Scommetto che saranno molto simili e la terza versione può affermare che hai violato il copyright della prima versione. :(

  • Non è pratico provare a reinventare l'API. Puoi reinventare l'API di una HashMap? Forse puoi cambiare put(k,v)in add(k,v), ma non molto di più.

La mia idea di proteggere me stesso e il mio codice precedente:

Dirò al mio datore di lavoro che sto costruendo il nuovo framework basato su uno precedente che ho scritto con la licenza MIT. Quindi, in futuro, se uso il mio precedente framework da qualche altra parte, o anche un'altra versione derivata di esso , che ha alcuni pezzi di codice simili a questo nuovo framework che sto costruendo ora per il datore di lavoro, non saranno in grado di dire che lo sono usando il loro codice, quello che ho scritto per loro.

Le mie domande:

  • Non sto distribuendo il mio codice a nessuno. Non devo distribuire il mio codice con licenza MIT a nessuno, se possiedo il copyright, giusto? Voglio dire, qualcuno può richiedere che rilasci il mio codice che ora rivendico sia sotto licenza MIT? Non sarebbe la fine del mondo e sarei sicuramente d'accordo a farlo sotto una minaccia legale.

  • Questa strategia ha senso? Il mio obiettivo finale è quello di essere in grado di utilizzare una versione derivata del mio precedente framework codificato senza perdere il copyright ad esso. Allo stesso tempo, non voglio distribuire questo codice come progetto open source a nessuno. Ho altri progetti open-source, che distribuisco liberamente, ma questo mi piacerebbe tenerlo per me stesso in modo da poterlo utilizzare sui miei lavori (non lavori di appaltatore).

È come affermare di avere un framework sotto la licenza MIT, senza effettivamente distribuire e / o mostrare a nessuno . Se è là fuori, gratuito e facilmente disponibile, i miei datori di lavoro non hanno più bisogno di me. Possono semplicemente prendere il codice e darlo a qualcun altro per usarlo.

Appunti:

  • Ho elencato questo framework come un'invenzione precedente prima di iniziare il lavoro.

  • Non ho rilasciato questo codice da nessuna parte. È sul mio repository SVN privato che ospito nel mio server privato.

La mia idea in breve:

  • Il mio piano è di mantenere il codice precedente per me stesso, usarne parti in questo nuovo framework che sto costruendo per il datore di lavoro e dire al datore di lavoro che il lavoro deriva da un framework con licenza MIT che ho codificato in precedenza e che non ho distribuito a nessuno ". Non sono costretto a distribuire un software che ho codificato sotto licenza MIT, vero? Se in seguito si verifica un reclamo legale (si spera di no), posso immediatamente incollare la licenza su tutte le fonti e mostrare / rilasciare il codice.

Risposte:


21

Ero un avvocato di proprietà intellettuale, quindi ho esperienza con la licenza. Sento che i termini stessi sono abbastanza leggibili e comprensibili, ma poi sono rovinato da tre anni di facoltà di giurisprudenza e un po 'di tempo da avvocato prima di riprendere il senno e tornare a fare hacking. Soprattutto dal momento che non sono attualmente un avvocato attivo, questo non è affatto un consiglio legale.

Iniziamo con il linguaggio di licenza del MIT stesso. Quindi esporrò alcuni punti chiave per comprendere le licenze open source, quindi affronterò le vostre domande e fornirò osservazioni di alto livello.

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: (che lasciano questo avviso in esso. La fine.)

Alcune cose chiave con la maggior parte delle licenze open source (inclusi BSD, MIT, GPL) per i proprietari di copyright sono:

  1. La licenza non modifica la proprietà del copyright stesso. È una licenza non esclusiva, non una cessione o decadenza della proprietà. L'uso di una licenza del sistema operativo non significa "rendere qualcosa di pubblico dominio", sebbene si tratti certamente di un approccio all'open source.
  2. Nulla "ti costringe", il proprietario del copyright, a rendere pubblico il codice in alcun modo solo perché gli si allega una licenza.
  3. Ma se si utilizza una licenza del sistema operativo, non si può impedire a chiunque "ottenga" il proprio codice con licenza del sistema operativo di renderlo pubblico in alcun modo, il che è esplicitamente all'interno dei propri diritti in base a tutte queste licenze.
  4. Le licenze Copyleft (ad es. GPL) richiedono che gli acquirenti (ma non i proprietari) rendano pubbliche e open source le loro opere derivate. Permissivo (MIT, BSD) no. (potrebbe essere un po 'una semplificazione, ma è la differenza essenziale)
  5. Non esiste una clausola di "ritiro" per la maggior parte delle licenze open source (ad es. MIT), quindi una volta che qualcuno ha "ottenuto" il tuo codice, ha il diritto di usarlo perpetuamente, secondo le condizioni di licenza in base alle quali lo ha ricevuto.
  6. Puoi sempre distribuire le versioni future del tuo codice con una licenza diversa o mantenerle completamente proprietarie. Ciò non impedisce a qualcuno di iniziare con la tua precedente versione open-source (supponendo che lo abbiano "ottenuto") e di aggiungere le proprie nuove parti e distribuirlo.
  7. Puoi rimuovere un canale di "acquisizione" per le versioni precedenti del tuo codice, ad es. Toglierlo da github. Tuttavia, come accennato, ciò non impedisce in alcun modo agli altri di utilizzare o distribuire versioni precedenti che avevi aperto, in alcun modo.

Con tale base, passerò alle tue domande.

Non sto distribuendo il mio codice a nessuno. Non devo distribuire il mio codice con licenza MIT a nessuno, se possiedo il copyright, giusto? Voglio dire, qualcuno può richiedere che rilasci il mio codice che ora rivendico sia sotto licenza MIT? Non sarebbe la fine del mondo e sarei sicuramente d'accordo a farlo sotto una minaccia legale. ... Allo stesso tempo, non voglio distribuire questo codice come progetto open source a nessuno.

Come detentore del copyright, non è necessario distribuire alcun codice a nessuno; non dovresti onorare tali richieste (anche se fosse GPL). Conservi tutti i diritti. Tuttavia, nella situazione che descrivi, distribuiresti alla tua nuova azienda e la licenzieresti perpetuamente con una licenza del sistema operativo. Il tuo datore di lavoro (più probabilmente ex datore di lavoro) potrebbe incollare il tuo codice su Internet e non potresti fare nulla al riguardo oltre a lamentarti.

Presumo tu intenda "chiunque oltre al mio datore di lavoro". Se non vuoi darlo al tuo datore di lavoro "come open-source" e dare loro tutti i diritti inclusi in quella licenza, inclusa la ridistribuzione e l'uso perpetuo nel modo che preferiscono, non dovresti usare un licenza open source. Dovresti semplicemente concedergli una licenza direttamente secondo i termini che desideri. Bullet indica ciò che desideri e chiedi a un avvocato di fatturarti un'ora o due per metterli in un modulo di paragrafo. O scrivilo tu stesso. Le licenze sono solo contratti che sono solo accordi in parole.

Il mio obiettivo finale è quello di essere in grado di utilizzare una versione derivata del mio precedente framework codificato senza perdere il copyright ad esso.

Non puoi perdere il copyright se non lo assegni a qualcuno, lo concedi in licenza esclusivamente (incluso l'esclusione di te stesso) o lo perdi. Le licenze open source non sono nessuna di queste. Sarai sempre in grado di utilizzare le versioni derivate che crei e puoi persino concedere in licenza le derivazioni in modo diverso o conservare tutti i diritti.

Ma una delle tue principali e legittime preoccupazioni sembra essere che tu possa continuare a conservare il copyright e utilizzare il tuo codice in futuro senza che il datore di lavoro rivendichi il codice come suo o che tu sia al di fuori dei tuoi diritti di farlo. La chiave per questo è creare una prova inconfutabile che A) conservi il copyright del tuo lavoro precedente e lo fornisci loro in base ai termini della licenza X (il MIT funziona, se sei d'accordo con l'aspetto open source di esso sopra descritto. ) B) sono d'accordo con questi termini, e C) che cosa, esattamente il lavoro precedente era.

Per (A) e (B) puoi convincerli a firmare o concordare per iscritto a qualcosa che fa riferimento o include la licenza e che capiscono che stai portando il codice al tavolo in questi termini. Quanto a (C) non sono sicuro di quale sarebbe il modo standard di farlo, ma sii logico. Se non è tremendamente massiccio, puoi semplicemente stampare il codice e includerlo nell'addendum nelle copie dell'accordo che sia tu che il tuo datore di lavoro firmano. Conserva la tua copia, con la sua firma. Se è troppo grande per essere praticamente stampato, sembra che un hash md5 sarebbe utile qui. Forse potresti riferirti ad esso come qualcosa come "il file zip chiamato X nel repository github privato /, (o sito ftp, ecc.), Che ha un hash md5 di XXXXXX ... ed è stato inviato per e-mail al rappresentante dell'azienda Y su Z Data". Quindi puoi inviarlo via e-mail al tuo manager o al loro avvocato o chiunque dal tuo account di posta elettronica personale e anche se cancellano la loro copia conservi ancora la tua e non possono sostenere che hai previsto il futuro hash di codice md5 che non è ancora stato scritto . Ciò teoricamente impedirebbe loro di rivendicare qualcos'altro lungo la strada.


Fantastico, Ben. Grazie per l'aiuto. Sono già impiegato, quindi mi chiedo se una e-mail al mio manager indicando la situazione e i termini della licenza da me a loro sarebbe sufficiente. Quindi includerei la licenza (Copyright (c) MY NAME - Licenza concessa a COMPANY blah, blah, blah) su ogni codice sorgente che sto introducendo. Cosa ne pensi?
JohnPristine

Le e-mail possono certamente essere la prova di un'intesa o di un accordo, ad esempio un contratto. Se proponete di portare il codice sul tavolo in determinati termini e una persona con autorità all'interno dell'azienda lo accetta, sembra che creerebbe un contratto abbastanza bene. Penso che anche la tua idea sui termini (C) / licenza in ciascun file sia valida. La domanda è se manterrai (C) i miglioramenti ai file o meno. In caso contrario, potresti voler registrare le versioni originali dei file a cui conservi la sola (C), ad esempio con un file zip e un hash md5 inviati al tuo manager.
Ben Roberts

Risposta fantastica, grazie. Molto ben dettagliato e formulato.
haylem,

6

(Non sono un avvocato.)

Vedo alcuni potenziali problemi con questo:

  • Se il peggio dovesse peggiorare, dovrai dimostrare di aver scritto questo codice prima di iniziare a lavorare lì e che quando lo hai utilizzato nel tuo progetto sul lavoro, il tuo datore di lavoro era consapevole che era protetto da copyright e licenza MIT . Poiché l'obiettivo principale di ciò è conservare il tuo copyright, non stabilire termini di ridistribuzione, un contratto scritto con il tuo datore di lavoro sull'uso del codice precedentemente scritto sembra un'idea migliore.

  • Dici di voler proteggere il tuo copyright e la possibilità di creare "anche un'altra versione derivata di esso". Ora è probabile che mentre svolgerai il tuo attuale lavoro, avrai alcune idee fantastiche e implementale. Mi sembra che questo diventerebbe peloso quando lasci il tuo lavoro e poi 'ri-implementa' quelle idee per costruire un'altra versione della tua libreria - dal momento che non puoi fare quello che vuoi con il codice che hai scritto sul tuo lavoro (e in una certa misura, le idee alla base).


1) Ho intenzione di farlo con un file di licenza insieme al codice dell'azienda, affermando che si basa sul lavoro derivato con licenza MIT. Per dimostrare che è stato scritto prima che io abbia intenzione di contare con la mia precedente dichiarazione del modulo di invenzione. 2) Credo che le idee non siano protette da copyright, a meno che non ci sia un brevetto. Il codice è protetto da copyright. La sfida è come riscrivere / reimplementare / riutilizzare l'idea senza rompere il copyright dal codice originale implementato.
JohnPristine

2
È vero che le idee non sono protette da copyright ma possono essere considerate "segreti commerciali" o "know-how" o (se brevettabili) "idee brevettabili" o altro tipo di "proprietà intellettuale" che probabilmente avete concordato di possedere. È una specie di area disordinata.
Ben Roberts

4

Non sono un avvocato, ma questa sarebbe la mia soluzione:

  1. Rilascia il codice con la licenza GNU GPL v3 in un repository pubblico, dove tutti sono in grado di vedere.

  2. La licenza GPL non consente ad altre persone di prendere il tuo codice e metterlo nel loro software commerciale proprietario e chiudere il codice.

  3. Se il codice è stato creato al 100% da te e non contiene lavoro proveniente da altri o lavoro derivato, GPL ti consente di concedere in licenza anche il tuo codice con un'altra licenza, nel qual caso ti è consentito utilizzarlo nei tuoi lavori per scopi commerciali proprietari codice. Tuttavia, è necessario rendere il datore di lavoro un licenziatario di questa licenza proprietaria alternativa.

  4. Questa soluzione proverebbe che hai scritto il tuo codice PRIMA di accettare il lavoro.

  5. Puoi pubblicizzare che il tuo codice è disponibile con una licenza proprietaria per la vendita (per soldi) e quindi le parti interessate possono contattarti per acquistarlo.


Non vorrei fare 1 o rilasciare il codice in un repository pubblico. Capisco che è il modo più semplice per dimostrare che il codice è stato scritto prima. Penso che ai professionisti del software manchi questo tipo di licenza, che consente loro di utilizzare il loro codice per un lavoro senza renderlo open source e senza perderlo. Se ri-fai tutto, i codici saranno simili, non c'è scampo da quello. E il design di una camera bianca non è pratico per un dipendente.
JohnPristine

Ma la tua soluzione consente al tuo datore di lavoro di pubblicare il tuo codice sorgente in un repository pubblico. Penso che usare una licenza open source quando non vuoi che sia open source non è saggio.
Markijbema,

2

C'è un motivo specifico per cui non puoi chiedere al tuo datore di lavoro se è possibile che tu mantenga il copyright sul codice generale che scrivi per il tuo framework (che a sua volta fornisce loro un codice gratuito in questo momento), e dai loro tutto quello che puoi fare -vuoi-con-esso (concordato, è abbastanza simile al MIT).

Tuttavia, se autorizzi il tuo attuale codice MIT, non c'è motivo per cui il tuo datore di lavoro dovrebbe open source la sua versione modificata (modificata da te), quindi direi che non risolve molto. Anche LGPL non risolverebbe questo problema, a condizione che il codice non sia "distribuito".

Tutto sommato, il tuo accordo non sembra irragionevole: hai un codice quadro e sei disposto a donarlo alla società, a condizione che tu possa conservare il codice e riutilizzarlo per altri progetti in seguito, quindi perché non chiedere?


Si! Questo è sempre l'approccio migliore che devo concordare. Sii coraggioso e chiedi. Se pensano che tu sia strano per averlo chiesto, allora inizia a cercare un altro lavoro. Così semplice. La vita è fatta di onestà e rischi. :)
JohnPristine

2

IANAL, chiedi a un vero avvocato, ecc.

Prima di tutto, penso che tu creda che quando hai il copyright, puoi concedere in licenza il prodotto a te stesso alle stesse condizioni in cui lo concedi in licenza a tutti gli altri. Questo è sbagliato: puoi concederlo a te stesso in qualsiasi licenza adatta e concederlo a qualcun altro con una licenza diversa.

Ciò significa che è possibile creare una licenza speciale per l'azienda che sta per assumerti e rendere il software disponibile per loro come accordo separato. Certo, questo dovrebbe essere fatto da un vero avvocato.

Chiedi alla tua azienda di firmare la licenza separata, che afferma esplicitamente che hai il copyright e che stai concedendo loro determinati diritti, non il copyright.

Per quanto riguarda il problema secondario, ci sono altri modi per dimostrare la data precedente, oltre a open-sourcing del progetto. Ad esempio, è possibile ospitare su un server disponibile pubblicamente un file che indica che è stato effettivamente scritto questo software, alla data specificata, contenente ad esempio alcuni hash diversi della versione corrente o persino la versione crittografata del progetto.

Ciò significa che se sei sotto una minaccia legale, puoi dimostrare al giudice la data di utilizzo precedente, ma non rivelerai praticamente nulla del progetto, oltre a ciò che sei l'autore e la data in cui lo hai rivelato. Dovresti consultare un avvocato sulla possibile validità di tale argomento, ma credo che sarebbe accettato nella maggior parte dei tribunali.

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.