Come marcare le code line su MIT?

2

Quando utilizzo un codice concesso in licenza con la licenza MIT, ma non è in file separati, è OK contrassegnarlo in questo modo?

/* Here starts code licensed under the MIT License (../MIT.txt) */
// code
/* Here is the end of code licensed under the MIT License (../MIT.txt) */

Dove nel file ../MIT.txt, conterrà il testo della Licenza MIT e le note sul copyright dell'autore originale.

Inoltre, quando la maggior parte del codice è rilasciata dal MIT e sto modificando solo alcune sezioni delle funzioni, posso contrassegnare quelle parti con lo stesso metodo di cui sopra ma con la mia licenza? Sì, ci saranno molti kilobyte di commenti.

    
posta Marqin 15.09.2014 - 13:26
fonte

3 risposte

3

Quando si utilizza il codice con licenza MIT in un progetto con licenza non MIT, semplicemente contrassegnare le parti con licenza MIT del codice sorgente non è una buona strategia. La licenza ti consente di fare qualsiasi cosa con il codice, inclusa la sub-licenza del codice, sotto questa restrizione:

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

Si noti che la licenza MIT deve essere visualizzata anche all'utente finale del software. Quando visualizzi il copyright dell'utente, devi anche aggiungere qualcosa come

This program includes code from the FooBar library, used under the following license:

The "FooBar" library  
Copyright (c) <year> <copyright holders>

<license body>

Inoltre, potresti voler contrassegnare esplicitamente le sezioni nel codice che sono state prese da una fonte con licenza MIT. Dalla mia comprensione, questo non è richiesto, ma sarebbe etico.

Quando modifichi una fonte con licenza MIT, non devi contrassegnare i tuoi contributi con una licenza separata, poiché ciò richiede che un utente della sorgente segua sia la licenza originale che la tua licenza. Invece, scegli una delle seguenti opzioni:

  • Autorizza i tuoi contributi con la stessa licenza del resto del codice. Puoi modificare l'avviso sul copyright per riflettere che hai contribuito alla fonte, senza contrassegnare ciò che hai modificato.
  • Riscrivare la licenza della sorgente con licenza MIT sotto la propria licenza, in un modo consentito dalla licenza MIT. Vedi sopra.

Note :

  • Sono un programmatore, non un avvocato.
  • Il termine "licenza MIT" è abbastanza ambiguo. Questa risposta presuppone la licenza Expat , ma è applicabile anche alla Licenza X11 .
risposta data 15.09.2014 - 14:11
fonte
1

È folle. NON FARE QUELLO.

Se stai lavorando in un altro codice che ha una licenza MIT, allora le tue modifiche dovrebbero avere la licenza MIT. Se per qualche motivo non puoi usare la stessa licenza del resto del progetto, non dovresti scherzarci. Se hai un disaccordo etico o di qualsivoglia discordanza con la licenza di un progetto, allora NON LAVORARE SU QUESTO PROGETTO.

È TOTALMENTE irragionevole che tu inserisca un vero e proprio campo minato di conformità del copyright in ogni file sorgente. Non è ragionevole aspettarsi che gli utenti del codice esaminino ogni riga di ogni file sorgente per determinare quale sia la licenza della cosa.

Se semplicemente DEVI fare le cose in modo diverso, quindi estrai il tuo codice per separare i file, in modo che qualcuno che valuta il codice per il loro uso abbia una POSSIBILITÀ di sapere quale licenza era sotto il codice.

Inoltre: se arrivasse in un'aula di tribunale, non sono chiaro come sarebbero andati a finire i tuoi imbrogli. Una persona non osservante potrebbe legittimamente affermare di non aver notato che i tuoi bit sono stati licenziati in modo diverso, e uno senza scrupoli potrebbe potenzialmente usare la confusione per fare cose che non intendevi.

    
risposta data 15.09.2014 - 13:40
fonte
0

Se si voleva fare questo (e non ti importava del possibile contraccolpo) dovresti almeno:

  • Aggiungi un file di licenza , come suggerisci.
  • Indica chiaramente nel file readme che il codice è concesso in licenza come "pippo" (qualunque sia la licenza originale) tranne dove tra parentesi " some special start string " e " some special end string " che è concesso in licenza MIT. queste stringhe devono essere uniche e mai sbagliate, in modo che gli utenti possano in teoria rimuoverle utilizzando uno script semplice se non desiderano il tuo codice.

Per evitare il gioco eccessivo, probabilmente dovresti fare anche questo:

  • Fornisci all'utente un link o uno script per ottenere il codice senza le modifiche della licenza in modo diverso.
  • Assicurati che il codice funzioni (o, almeno, tutti i test superino) se il tuo codice viene rimosso.
  • Inserisci il tuo codice in file separati o avvolgi il progetto originale (utilizzando ad esempio un sottomodulo Git) per garantisci che non stai modificando il codice originale.

Il problema più grande di questo è probabilmente il modo in cui il tuo codice si collegherà al resto. Non puoi modificare nemmeno una singola riga del codice originale e ridigitarla, quindi come farai con le modifiche sensate? Ad esempio, non è possibile collegare staticamente il codice GPL senza modificare la licenza in GPL. Ci sono probabilmente host di altri problemi con licenze specifiche, e molto probabilmente creerai solo problemi per te stesso e gli altri. Se tieni abbastanza gli altri utenti (supponendo che tu non stia vendendo il progetto compilato) per rilasciare le tue modifiche, perché non ti interessa abbastanza usare la licenza originale?

Una soluzione molto più semplice che non ha alcuna garanzia di successo è quella di spiegare con calma e ragionevolmente all'autore originale i motivi per cui desideri che il software utilizzi la licenza MIT e se siano disposti a doppia licenza it.

    
risposta data 15.09.2014 - 14:09
fonte

Leggi altre domande sui tag