È possibile sfuggire alla GPL derivando la stessa opera da più fonti?

2

Supponi di avere una base di codice arbitrario, C , possibilmente composta da più programmi, nessuno dei quali rientra in una licenza di copyleft.

Supponiamo che questo codice, preso insieme, faccia lo stesso lavoro di un bel programma integrato, con licenza A sotto una licenza copyleft come la GPL, ma che per qualsiasi ragione il codice GPL sia superiore (più veloce, più pulito, meno buggato, qualunque cosa).

Supponiamo ora che per ogni funzione di C , trovi la funzione equivalente in A e, attraverso un'accurata procedura di refactoring passo passo, crei due catene di patch che convergere su un terzo programma, B .

In altre parole, puoi mostrare passo dopo passo, tramite patch, come ricavare uno dei tre programmi da uno qualsiasi degli altri:

A <--> B <--> C

Sembra che attraverso questa procedura, hai estratto il valore da A e persino creato un'opera derivata, ma il nuovo lavoro non assomiglia necessariamente a A , e lì è una chiara catena di prove che mostra che B è stato derivato interamente da un diverso codice base.

La mia domanda è:

Un'implementazione " dialettica " fornirebbe lo stesso effetto giuridico di un'implementazione tradizionale "clean room"?

Nota: sentiti libero di sostituire le licenze di A e C con le tue opzioni più e meno preferite, rispettivamente. La domanda riguarda il processo in generale.

    
posta tangentstorm 08.08.2013 - 04:45
fonte

5 risposte

11

No.

Il copyright non funziona con "se puoi". Funziona con "se lo hai fatto". Se hai preso C e lo hai modificato per ottenere B, sei vincolato dalla licenza di C indipendentemente da quanto B sia vicino ad A. In teoria, se prendi un file GPL di 10.000 righe, cancelli tutto tranne la prima riga e scrivi codice arbitrario dopo sarebbe ancora vincolato dalla GPL. Nel tuo esempio iniziale, se crei una catena di patch da C a B, sei vincolato dalla licenza di C indipendentemente da ciò che fai con A. Quello che fai con A è completamente e assolutamente irrilevante in merito.

Nota che se leggi l'origine su C, vai in un'altra stanza e la digiti dalla memoria, sei ancora che crea un'opera derivata. Un'implementazione "clean room" si basa sul fatto che le persone che eseguono l'implementazione non abbiano una conoscenza diretta dell'originale. Cioè, qualcuno legge C, capisce le interfacce, crea un documento di progettazione di base che descrive quelle interfacce e le dà a qualcun altro da implementare.

Naturalmente, se arriva mai al processo, diventa una questione di se gli avvocati possono dimostrare in base a una preponderanza di quella prova che questo è ciò che hai fatto e in pratica la maggior parte di queste prove riguarderà se hai avuto accesso a l'originale e quanto il tuo lavoro è simile all'originale. Gli avvocati stanno per presentare il tuo lavoro B e lavorare C davanti a un giudice o una giuria e dire "@tangentstorm ha avuto accesso a C e B è molto simile, quindi probabilmente ha copiato il lavoro ed è vincolato dalla licenza di C".

A entrerebbe in esso è se tu affermassi che il tuo B deriva da A e che la somiglianza a C è pura coincidenza. Più conoscenza di C si può mostrare, e più B è simile a C, più difficile sarà. Puoi certamente affermare che hai derivato B da A e usi patch / etc. come difesa, ma se hai effettivamente usato il processo che descrivi, questo sarebbe uno spergiuro.

(Si noti anche che questa è una legge civile, dove le domande sono di "preponderanza delle prove", non "oltre ogni ragionevole dubbio" come casi criminali. In altre parole, il 51% di probabilità non è il 99,99% di probabilità.)

Nella situazione che descrivi, le tue migliori opzioni sono ignorare completamente C e derivare da A da solo o derivare da C e rispettare la GPL. Cercare di "aggirare" non è etico e ti apre al rischio legale.

NOTA: dovrei dichiarare che NON sono un avvocato, e se stai pianificando qualcosa come la domanda originale, dovresti vederne uno reale. Il suggerimento generale di questa risposta dovrebbe essere che ti stai chiedendo metaforicamente se hai trovato un buon modo di infilare un bastone in un nido di calabroni.

    
risposta data 08.08.2013 - 05:13
fonte
3

La tua spiegazione finisce per dimostrare quanto segue:

A <-----> C
     |
     |
     V
     B

Vale a dire, B è derivato sia da A che da C. I tuoi diritti sono indicati nell'intersezione di entrambe le licenze, i tuoi obblighi dalla loro unione.

    
risposta data 08.08.2013 - 14:17
fonte
2

No.

Come comprendo la tua proposta, crei una copia di A per artificio.

Non è necessario utilizzare un computer per copiare un'opera, leggere un lavoro e riprodurlo sta ancora violando il copyright. La legge sul copyright varia a seconda della giurisdizione, ma AFAIK ha un significato abbastanza coerente. Fondamentalmente, se copi un'opera, che si tratti di un software, di un libro, di una musica o di qualsiasi altra cosa, una copia è una copia e viola il copyright.

    
risposta data 08.08.2013 - 06:24
fonte
1

La GPL non parla affatto di clean room o reverse engineering.

Se studi il codice sorgente da un programma GPL e utilizzi le conoscenze acquisite per scrivere il tuo codice tu stesso, non hai necessariamente eseguito il controllo della GPL. Una violazione si verifica quando usi e distribuisci il codice di qualcun altro, non quando scrivi il tuo.

Naturalmente, deve essere evidente che è il tuo codice, e non semplicemente una plicatura o una traslitterazione meccanica del codice originale. IANAL, TANSTAAFL, YMMV.

    
risposta data 08.08.2013 - 19:32
fonte
0

Questo A <--> B <--> C costituisce un buon esperimento di pensiero logico, ma non riesco a capire l'applicazione pratica.

Vedo solo due possibilità:

1) A --> B <-- C

Se B è realmente derivato da entrambi ( come hai suggerito ), in altre parole, met-in-the-middle, quindi deriva da C , come mezzo per collegare A e C (e viceversa, sebbene ciò non sembri avere importanza).

Non ci sarebbe modo di arrivare a un livello medio, B , senza conoscenza diretta e lavoro da A , a parte un'impossibilità statistica come Steven Burnap dice .

2)

O se B non viene derivato da entrambi, allora viene derivato da uno e il percorso verso l'altro viene decodificato utilizzando tale origine.

In questo caso, hai passato A --> B --> C nel qual caso sei vincolato dalla licenza. Oppure sei andato su C --> B --> A , nel qual caso potresti sostenere che non sei vincolato dalla licenza, ma perché avresti creato il B - > Un collegamento ? In questo caso, se ti fossi fermato a C - > B , starai bene.

Quindi o ...

  • Sei vincolato dalla licenza.
  • o hai fatto qualcosa che non dovevi fare.
risposta data 08.08.2013 - 06:18
fonte

Leggi altre domande sui tag