Cosa fare se il mio codice opensource somiglia molto al codice di un altro progetto?

3

Sto scrivendo una classe Java, parte di un framework di sviluppo di giochi opensource con la licenza Apache 2.0.

C'è un altro framework, sotto la stessa licenza, che ha anche una classe Java che affronta lo stesso argomento del mio. L'ho verificato di recente e la mia implementazione è estremamente simile a quella. Diamine, anche le variabili locali. Le differenze sono minime.

Dato che entrambe le classi sono opensource, immagino che non abbia importanza. Tuttavia, dal momento che i codici sono così simili, chiunque può arrivare alla conclusione che ho appena modificato un po 'la loro, e alla fine citare la licenza:

  • You must give any other recipients of the Work or Derivative Works a copy of this License;

  • You must cause any modified files to carry prominent notices stating that You changed the files;

Da quando ho scritto la mia lezione, non c'è bisogno di mettere le loro note sul copyright nel mio codice. Tuttavia, non è possibile dimostrare che non ho semplicemente copiato il loro codice e modificato un po '.

Che cosa si dovrebbe fare in questo scenario?

    
posta Omega 17.12.2013 - 04:54
fonte

2 risposte

7

Hai sviluppato il codice in isolamento dell'altro codice, il codice non è un lavoro derivato dell'altro. Non fare nulla che possa affermare che il tuo è un derivato dell'altro.

Scrivere codice che faccia cose simili sarà spesso implementato nello stesso modo. Un aneddoto di questo è che stavo lavorando su alcuni software per gestire decimali di precisione arbitrari (denaro). Il codice aveva un lungo e un intero e alcuni metodi. Più tardi ho scoperto che un altro sviluppatore aveva precedentemente implementato del codice per gestire le quantità decimali (era un grande progetto) - aveva un lungo, un intero e alcuni metodi. I nostri interni erano identici a metodi di accesso molto simili. Stavamo risolvendo lo stesso problema e avevamo le stesse idee su come implementarlo - ci sono solo tanti modi per farlo. Se questi fossero progetti software diversi, il mio ancora non sarebbe un derivato del suo.

Se io e te dovessimo implementare una fabbrica astratta per accedere ai file tramite un server web e entrambi abbiamo scelto di farlo con annotazioni e abbiamo molto tipi di base simili ... non rendi uno un derivato dell'altro a meno che stiate basando il mio disegno di codice sul mio.

Il copyright copre l'effettiva implementazione. Se lo hai riformulato. Modificato le variabili. Modificato l'altro a qualcosa nel tuo. Quelli sono un lavoro derivato, che sarebbe coperto dalla legge sul copyright. Ma la legge sul copyright non copre le idee - questo è il dominio della legge sui brevetti. Che tu e gli altri siate insieme avete un'idea e avete implementato l'idea allo stesso modo, è solo una codifica convergente.

Ora, non sarebbe una causa divertente da combattere se mai ci fosse riuscita. Le cause non sono mai divertenti da combattere. Ma dire che il tuo è un lavoro derivativo può causare più mal di testa se dovessi mai decidere di avere una doppia licenza o perseguire qualcun altro per violazione del copyright del lavoro (perché solo il detentore del copyright può perseguire violazione, e staresti dicendo che non sei il titolare di tale copyright).

    
risposta data 17.12.2013 - 05:07
fonte
2

Perché non contattare l'altro progetto e offrire la condivisione delle risorse?

Tali "fusioni di progetti" sono ragionevolmente comuni per i progetti open source.

    
risposta data 17.12.2013 - 07:34
fonte

Leggi altre domande sui tag