Domanda

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

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

Supponiamo ora che per ogni caratteristica in C , trovi la caratteristica equivalente in A e, attraverso un attento refactoring passo dopo passo, crei due catene di patch che convergono su un terzo programma, B .

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

A <--> B <--> C

Sembra che attraverso questa procedura tu abbia estratto valore da A e persino creato un'opera derivata, ma la nuova opera non assomiglia necessariamente ad A e c'è una chiara catena di prove che dimostrano che B è stato derivato interamente da una base di codice diversa.

La mia domanda è:

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

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

È stato utile?

Soluzione

No.

Il diritto d'autore non funziona con "se potessi".Funziona con "se l'hai fatto".Se hai preso C e l'hai modificato per ottenere B, sei vincolato dalla licenza di C indipendentemente da quanto B sia vicino ad A. In teoria, se hai preso un file GPL di 10.000 righe, cancellato tutto tranne la prima riga e scritto codice arbitrario dopoesso, saresti 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 totalmente irrilevante per la questione.

Nota che se leggi la sorgente in C, entri in un'altra stanza e la digiti dalla memoria, stai ancora creando un'opera derivata.L'implementazione di una "camera bianca" si basa sul fatto che le persone che effettuano 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 lo dà a qualcun altro per implementarlo.

Naturalmente, se mai si arriva al processo, diventa una questione se gli avvocati possono dimostrare, sulla base di una preponderanza di tali prove, che questo è ciò che hai fatto e in pratica la maggior parte di queste prove si concentrerà sul fatto che tu abbia avuto accesso all'originale equanto è simile il tuo lavoro all'originale.Gli avvocati presenteranno il tuo lavoro B e il lavoro C davanti a un giudice o a una giuria e diranno "@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 affermassi che la tua B deriva da A e che la somiglianza con C è pura coincidenza.Maggiore è la conoscenza di C che puoi dimostrare di avere, e più B è simile a C, più difficile sarà.Puoi certamente affermare di aver derivato B da A e di utilizzare patch/ecc.come difesa, ma se utilizzassi effettivamente il processo che descrivi, questo sarebbe falsa testimonianza.

(Si noti inoltre che si tratta di diritto civile, in cui le domande riguardano la "preponderanza delle prove", non "oltre ogni ragionevole dubbio" come i casi penali. In altre parole, il 51% di probabilità non il 99,99% di probabilità.)

Nella situazione come descrivi, le tue migliori opzioni sono ignorare completamente C e derivare da A solo o derivare da C e rispettare la GPL.Cercare di "andare in giro" non è etico e ti espone a rischi legali.

NOTA: dovrei affermare che NON sono un avvocato e se stai pianificando qualcosa come la domanda originale, dovresti vederne una vera.Il risultato generale di questa risposta dovrebbe davvero essere che stai metaforicamente chiedendo se hai trovato un buon modo per ficcare un bastone in un nido di calabroni.

Altri suggerimenti

La tua spiegazione finisce per dimostrare quanto segue:

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

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

No.

Dato che ho capito la tua proposta, creeresti una copia di A con l'artificio.

Non è necessario utilizzare un computer per copiare un'opera, leggere un'opera e riprodurla continua a violare il copyright.La legge sul copyright varia a seconda della giurisdizione, ma AFAIK ha un significato abbastanza coerente.Fondamentalmente, se copi un'opera, che sia un software per computer, un libro, musica o altro, una copia è una copia e viola il copyright.

La GPL non parla affatto di camere bianche o di reverse engineering.

Se studi il codice sorgente da un programma coperto da GPL e usi le conoscenze acquisite per scrivere il tuo codice da solo, non sei necessariamente in conflitto con la GPL.Si verifica una violazione quando si utilizza e si distribuisce il codice di qualcun altro, non quando si scrive il proprio.

Ovviamente, deve essere evidente che si tratta del tuo codice, e non semplicemente di un pappagallino o di una traslitterazione meccanica del codice originale.IANAL, TANSTAAFL, YMMV.

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

Vedo solo due possibilità:

1) A --> B <-- C

Se B è veramente derivato da entrambi (come hai suggerito), in altre parole, met-in-the-middle, allora è derivato da C , come mezzo per collegare A e C (e viceversa, anche se ciò non sembraquestione).

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

2)

Oppure, se B non è derivato da entrambi, allora è derivato da uno e il percorso verso l'altro è decodificato utilizzando quella fonte.

In questo caso, o sei andato A --> B --> C nel qual caso sei vincolato dalla licenza.O sei andato C --> B --> A nel qual caso potresti sostenere che non sei vincolato dalla licenza, ma perché avresti creato il collegamento B -> A ?In questo caso, se ti fossi fermato a C --> B , staresti bene.

Quindi neanche...

  • Sei vincolato dalla licenza.
  • o hai fatto qualcosa che non dovevi fare.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top