Cosa si intende per "modifica" delle fonti sotto la licenza BSD?

2

Ho una domanda sulla licenza BSD sulla 3-clausola basata sulla sua descrizione Wiki.

Dichiara:

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: ...

Che cosa si intende per "modifica"? Specificamente sono interessato se una qualsiasi delle seguenti affermazioni sia considerata come tale:

  1. Lettura dei sorgenti originali e successiva implementazione di un modo personalizzato.

  2. Lettura delle fonti originali, in attesa di un anno e successiva ri-implementazione di qualcosa in base a qualsiasi cosa tu possa ricordare.

  3. Riformattazione "completa" diretta e molto significativa delle fonti originali.

posta Den 20.08.2014 - 22:42
fonte

2 risposte

2

La modifica in questo caso è qualsiasi cosa che non sia una modifica banale al codice sorgente.

Quindi quali sono alcuni esempi di cambiamento banale ?

  • Lo spazio bianco cambia solo o altra formattazione come interruzioni di riga.
  • Ridenominazione delle variabili
  • Rinominare un file o un modulo

Si noti che le modifiche insignificanti non fanno nulla per il flusso programmatico dell'applicazione.

Le modifiche non banali includeranno:

  • Flusso algoritmico di rielaborazione
  • Aggiunta di funzionalità (registrazione, tracciamento, miglioramenti)
  • Correzioni di bug

Si noti che le modifiche non banali sono additive o che influenzano il flusso del programma.

Tuttavia, ci sono alcune aree grigie . Ad esempio, il refactoring di un metodo estraendo alcune parti potrebbe non essere banale. Dipende dalla complessità dell'estrazione e da ciò che deve essere riorganizzato per supportare l'estrazione. Allo stesso modo, estraendo cut & incollare blocchi di codice in un singolo metodo richiede alcune analisi per determinare se non è banale.

Quindi affrontiamo le tue domande.

Reading the original sources and then re-implementing a custom way.

Ho intenzione di andare con non banale e quindi una modifica al codice originale. L'aspetto chiave qui è re-implementing [in] a custom way . Non era una copia & incolla l'esercizio; hai dovuto fare uno sforzo significativo per implementare e validare il tuo lavoro.

Reading the original sources, waiting for a year and then re-implementing something based on whatever you could remember.

Difficile da dire, e potrebbe andare in entrambi i modi. "Tempo di attesa" non ha nulla a che fare con il determinare se la modifica fosse banale o meno. Ad esempio, potresti avere una memoria fotografica ed essere quindi in grado di riscrivere il codice letteralmente dalla memoria. È un'impresa impressionante, ma non si qualificherebbe come una modifica. D'altra parte, si potrebbe finire con una completa riscrittura degli algoritmi e quindi hanno creato un cambiamento non banale.

Direct and very significant "complete" refactoring of the original sources.

Sicuramente una modifica del codice originale. Complete refactoring implica ri-organizzare quantità significative di codice e alterare il flusso del programma.

Trovandoti alla periferia della tua domanda, perché ti interesserebbe tanto sapere se una modifica conta o meno come una modifica. Se apporti una modifica non banale al codice, allora possiedi il copyright di quella modifica. E anche se la licenza BSD ti dà praticamente libero di fare qualsiasi cosa con il progetto originale, se hai riscritto l'intero progetto puoi rivendicare tutti i diritti d'autore del nuovo progetto.

La cortesia suggerirebbe di riconoscere il precedente progetto come ispirazione, ma non sei legalmente obbligato a farlo una volta che hai completamente riscritto un progetto. E se non hai completamente riscritto il progetto, allora dovrai rispettare le clausole della licenza BSD.

    
risposta data 22.08.2014 - 15:52
fonte
4

Non sono un avvocato, ma la mia comprensione è che una modifica sarebbe qualsiasi cosa che è considerata un lavoro derivato sotto la legge sul copyright. Questa è un'area grigia in cui i casi limite possono dover essere decisi in tribunale, quindi potrebbe essere meglio essere sicuri e fare comunque ciò che la licenza dice. Inoltre, considera di chiedere agli sviluppatori originali di chiarire spesso parti ambigue della licenza agli utenti.

Questo problema si verificava quando si implementava GNU dopo che alcuni programmatori avevano letto il codice sorgente di Unix (vedere Lettura di codice non libero ). Questo è per codice non libero, ma vale la stessa idea. Basato su queste linee guida:

  • L'oggetto (1) potrebbe essere considerato come una modifica. Anche se potrebbe dipendere da quanto è diversa la tua implementazione.
  • L'articolo (2) non sarebbe una modifica se lo implementa in un modo diverso.
  • L'elemento (3) sarebbe una modifica, perché lascia parte del codice dell'originale nella nuova versione, o almeno parte della struttura.

Il modo più sicuro per reimplementare qualcosa senza violare il copyright è usare qualcosa come design della camera bianca . Ciò fornisce una difesa nel caso in cui sei stato denunciato per violazione.

    
risposta data 21.08.2014 - 00:12
fonte

Leggi altre domande sui tag