E 'possibile riscrivere ogni linea di un progetto open source in un modo leggermente diverso, e usarlo in un progetto closed source?

119

C'è un codice che è GPL o LGPL che sto considerando di utilizzare per un progetto iPhone.

Se prendessi quel codice (JavaScript) e lo riscrivessi in una lingua diversa per l'uso su iPhone, sarebbe un problema legale?

In teoria il processo che è successo è che ho seguito ogni linea del progetto, ho imparato cosa sta facendo e poi ho reimplementato le idee in una nuova lingua.

Per me sembra che questo sia come imparare a implementare qualcosa, ma poi reimplementarlo separatamente dalla licenza originale. Quindi hai solo copiato l'algoritmo, che probabilmente potresti aver imparato da qualche altra parte oltre al progetto originale.

La licenza copre anche l'implementazione specifica o l'algoritmo?

EDIT ------

Davvero contento di vedere questo argomento per creare una buona conversazione. Per dare un po 'più di sostegno al progetto, il codice coinvolto fa un qualche tipo di analisi audio. Credo che sia non banale apprendere o implementare, anche se ero preparato a intraprendere questo compito (sono al livello in cui posso implementare un FFT algoritmo, e questo andava oltre.) È un LOC abbastanza basso. script, quindi non pensavo sarebbe stato troppo difficile fare una porta dritta.

Mi piace molto l'idea di rilanciare la mia porta e di utilizzarla nell'applicazione. Non vedo alcun problema con questo, e sarebbe un ottimo modo per restituire qualcosa alla comunità.

Stavo per aggiungere una battuta sul non voler discutere delle questioni morali, ma sono abbastanza contento di non averlo fatto perché sembra aver acceso un po 'il dibattito.

Mi sento ancora un po 'strano nell'usare il codice open source da cui imparare. Questo significa che non si può utilizzare tutto ciò che si apprende da un progetto open source in un progetto closed source? E quanto tempo dopo o è diversa l'implementazione per non essere considerata violazione della licenza? Murky!

EDIT 2 --------

domanda successiva

    
posta Chris Barry 24.06.2011 - 15:41
fonte

14 risposte

255

Non sono un avvocato. Questo non è un consiglio legale.

Ciò detto, prendere ogni riga di un'applicazione e modificarla leggermente al solo scopo di aggirare la legge sul copyright è palesemente, ovviamente, creare un lavoro derivato senza alcuna difesa plausibile. Anche il giudice e la giuria più compiacenti troveranno sicuramente contro di te se ti trascineranno in tribunale.

Proprio come un confronto: le aziende che hanno bisogno di riscrivere qualcosa per l'interoperabilità di solito assumono diversi gruppi di persone per capirne l'origine e per creare la porta ("implementazione di clean room"), in modo che nessuno possa accusarle di creando un'opera derivata. Quello che proponi è l'esatto opposto.

    
risposta data 24.06.2011 - 16:16
fonte
70

Secondo Betsy Rosenblatt della Nozioni di base sul copyright :

What constitutes copyright infringement?

Subject to certain defenses, it is copyright infringement for someone other than the author to do the following without the author's permission:

  1. copy or reproduce the work
  2. create a new work derived from the original work (for example, by translating the work into a new language, by copying and distorting the image, or by transferring the work into a new medium of expression)
  3. sell or give away the work, or a copy of the work, for the first time (but once the author has done so, the right to sell or give away the item is transferred to the new owner. This is known as the "first sale" doctrine: once a copyright owner has sold or given away the work or a copy of it, the recipient or purchaser may do as she pleases with what she posesses.) 17 U.S.C. §109(a).
  4. perform or display the work in public (this right does not apply to visual art) without permission from the copyright owner. 17 U.S.C. §106. It is also copyright infringement to violate the "moral rights" of an author as defined by 17 U.S.C. 106A. Moral rights are discussed at this location.

Mi sembra che tu stia violando l'articolo 2 sopra.

Tuttavia, penso che la terminologia sia un grosso problema qui. Hai detto: "Se prendessi quel codice (javascript) e riscritto in una lingua diversa da utilizzare su iPhone, sarebbe un problema legale?" (sottolineatura mia). Riscrivere qualcosa può essere o non essere diverso dalla copia. Per esempio, se guardavi la Gioconda, poi andavi nel tuo studio e dipingevi ciò che ricordi, poi mi sembra che tu stia creando un'opera originale che è la tua espressione di come hai percepito l'originale. Se, tuttavia, avevi una copia della Gioconda nel tuo studio e ne hai dipinto una copia, piuttosto che ciò che ricordi, allora penso che tu stia sicuramente copiando.

Allo stesso modo, se usi MS Word, e forse anche se guardi parte del codice, e poi vai a scrivere il tuo word processor che ha somiglianze funzionali, credo che ci siano casi in cui è stato deciso quel "look & feel" non è protetto da copyright. (Questo non dice nulla sui brevetti, ovviamente.)

Probabilmente dovresti chiedere ad un avvocato (perché non ne sono uno).

La mia opinione personale è che una "porta" è un lavoro derivato e quindi devi rilasciare il codice portato nella stessa licenza.

    
risposta data 24.06.2011 - 15:59
fonte
54

Non sono un avvocato, questo non è un consiglio legale, e se ti affidi a quello che dico in qualsiasi tipo di impresa discutibile (1) sei un idiota, e (2) declino ogni responsabilità. Questo è quello che ho sentito e letto nel corso degli anni da persone che sembrano sapere.

I giudici non giocano "in teoria". A loro non piacciono le persone che inventano modi per distorcere la legge, che sono forse accettabili in termini di analisi logica, ma che sono contrari all'intenzione ovvia e al modo in cui i giudici hanno governato in passato. Non cercare mai di essere troppo intelligente riguardo alla legge se c'è qualche possibilità che finisca in un'aula di tribunale a difendere la tua interpretazione.

È generalmente accettato che prendere un romanzo e fare un film da esso o tradurlo in un'altra lingua stia creando opere derivate, e queste sono trasformazioni molto più grandi di quelle di cui parli, e richiedono una creatività molto maggiore. Guarda quelli come esempi; certamente un giudice lo farà.

Negli Stati Uniti, ci sono stati casi in cui copiare un programma in modo più approssimativo di quello di cui si sta parlando è stato escluso dalla violazione. Negli Stati Uniti, aspettati che siano usati come precedenti.

In altre parole, inizierai un'impresa commerciale su una base che sarà ritenuta illegale se qualcuno ti dà fastidio. Non è una buona idea.

Inoltre, se hai rispetto per l'idea del copyright, o qualsiasi controllo che un autore possa avere su ciò che pubblica, sei ipocrita. Il codice sorgente è stato reso disponibile per il tuo uso in determinate condizioni. Stai violando la legge e l'intenzione esplicita dell'autore.

Ora, gli algoritmi non possono essere protetti da copyright. Negli Stati Uniti, i tribunali hanno stabilito che è impossibile avere un'idea di copyright, e qualsiasi cosa che sia normalmente protetto da copyright è l'unico modo per esprimere qualcosa che non è protetto da copyright. Pertanto, puoi certamente usare l'algoritmo.

Esiste un modo per copiare un algoritmo protetto da copyright: l'approccio "clean room", in cui una persona o un gruppo studiano il codice sorgente e creano una descrizione dell'algoritmo (con il minor numero possibile di dettagli di implementazione), e un'altra persona o gruppo scrive un nuovo codice senza alcun riferimento alla fonte originale. Più ti avvicini a quello, più sarai al sicuro.

Potresti anche voler considerare che, pubblicando la domanda qui, hai pubblicato un possibile intento di violare il copyright, in una forma che può essere ricondotta a te se qualcuno ha il diritto legale di farlo (tale come scoperta in un caso civile, o semplice indagine di polizia se questo si rivela essere un caso criminale).

    
risposta data 24.06.2011 - 16:42
fonte
16

Perché non dovresti semplicemente aprire la porta e lasciare che il resto del tuo progetto fosse chiuso?

Per citare un'altra risposta della mia:

Open source works, because it is a community. Because it is mutual. You do not get money by writing open source code. You get money by consuming open source code. So why do you write open source code? To give something back.

Ma da un punto di vista più pragmatico:
Se il codice che hai portato è davvero così utile che pensi di doverlo proteggere per mantenere un vantaggio (che non hai, perché le persone usano Appcelerator può usarlo subito), ci sarà una porta open source prima o poi. Sarà gestito da un numero di persone, sarà usato e quindi testato da un numero ancora maggiore di persone e sarà ulteriormente perfezionato per incorporare i principi promossi dalla lingua di destinazione e per interfacciarsi meglio con i framework prevalenti sulla tua piattaforma. Prima o poi il tuo codice sembrerà un pezzo di merda rispetto ad esso.
L'open source è in effetti la tua possibilità di rimanere al top della scia. È win-win. Se sei fortunato, avrai anche manutentori per quel codice e potrai concentrarti sulla logica dell'applicazione, che è ciò che rende il tuo prodotto davvero unico.

    
risposta data 24.06.2011 - 17:02
fonte
8

Non sono un avvocato, non ne faccio nemmeno uno in TV.

Ma penso che il problema qui sia derivazione. Se il tuo nuovo lavoro è derivato dal lavoro GPL o LGPL, allora quel lavoro deve rispettare i requisiti della GPL o LGPL. Il tuo lavoro sarà chiaramente derivato, anche se lo riscrivi completamente riga per riga in un'altra lingua.

    
risposta data 24.06.2011 - 15:45
fonte
5

Come altri dicono, questo potrebbe essere un lavoro derivato e quindi violare direttamente i termini GPL se si sceglie di farlo "separato dalla licenza originale" (presumo che si voglia rimuovere la GPL e usare qualcos'altro, anche fonte chiusa).

Anche se scivola come "legale", è chiaramente immorale . L'autore di un software GPL ha scelto una tale licenza che estende le libertà su opere derivate. Sia una cosa buona o cattiva, è l'intenzione dell'autore e dovresti rispettarlo . Ti hanno dato il codice da leggere e modificare, fork e quant'altro, solo chiedendo in cambio di non modificare le condizioni. È anche probabile che non ci si aspettasse che paghiate per il software stesso.

So che il denaro è difficile, ma in questa forma mentre dipingi la tua idea, sta rubando. Certo, potrebbe avere imparato quell'algoritmo o qualsiasi dettaglio di implementazione da un'altra fonte, ma non l'hai fatto, come hai detto tu stesso.

Se la moralità non ti riguarda, ricorda che, data la natura di legalità grigia di ciò che stai facendo (o che stai per fare), è molto probabile che gli autori originali contattino la Apple a causa della violazione del copyright. Finora, Apple è stata rapida a rimuovere tale software che violava GPL. Un'altra possibilità è una causa.

Se fossi in te, considererei GPL-mia (non è una cosa tanto brutta!) o ottenere la conoscenza con altri mezzi.

    
risposta data 24.06.2011 - 16:39
fonte
5

Che ne dici di provare a fare la cosa giusta e non rubare le idee di qualcuno? Potresti semplicemente mandare un'email al creatore del codice e chiedere se puoi basare le parti del tuo progetto su di esse. Molte persone non avrebbero problemi con questo. Se hanno un problema con esso, quindi anche mettendo da parte questioni legali, perché vorresti infangare la tua reputazione di professionista nella comunità? Il fatto che questa domanda si sia espressa più o meno come "Cosa posso farla franca?", Al contrario di "Cosa dovrei fare?" è un po 'inquietante.

In conclusione, chiedi alla persona (o alle persone) che hanno scritto il codice .

    
risposta data 24.06.2011 - 17:02
fonte
5

Anch'io non sono un avvocato. Se sei preoccupato che si tratti di un problema legale, probabilmente non dovresti nemmeno fare questa domanda e solo scrivere la tua.

La mia opinione personale sull'argomento:

Se stai prendendo il codice javascript e lo riscrivi in una lingua diversa, si parla di porting ed è considerato un lavoro derivato. Se stai scrivendo la tua versione del software e utilizzi il codice javascript come riferimento per imparare come funzionano certi algoritmi, probabilmente stai bene.

Sarei sul lato di chiedere un avvocato.

In qualità di addendum , la legge sul copyright ti consente di fare sostanzialmente NIENTE [*] con il codice sorgente pubblicato oltre a leggerlo. La licenza con cui è stato rilasciato il proprietario del copyright consente determinati privilegi aggiuntivi non previsti dalla legge sul copyright. Prendere e utilizzare il codice in modi diversi da quelli consentiti nella licenza non è diverso dal prendere e utilizzare qualsiasi opera protetta da copyright protetta dalla legge sul copyright senza il permesso dell'autore.

[*] Con eccezioni per un uso corretto.

    
risposta data 24.06.2011 - 16:05
fonte
4

No. Non è etico. È quasi certamente illegale. E se avessi mai passato in rassegna un'app di lavoro da qualcuno che lo avesse fatto, sarebbe stato archiviato con un pregiudizio estremo.

    
risposta data 24.06.2011 - 18:53
fonte
2

Codifica sempre come se il tizio che finisce per mantenere il tuo codice sarà uno psicopatico violento che sa dove vivi. ~ Martin Golding

Non sono un avvocato, quindi non ho intenzione di rispondere come tale. Inoltre, molti altri non giuristi hanno già offerto le loro opinioni sulle conseguenze legali della tua idea. E salterò il dibattito sulla moralizzazione / etica.

Se fossi in te, sarei più interessato alle implicazioni come sviluppatore. È una cosa di rispetto. Rispetto di sé, soprattutto.

Certo, andiamo tutti a caccia di "Come stai {implementazione} in {specific}?" di volta in volta. Ecco da dove viene la pila, amirite? Ed è così che tutti noi abbiamo trovato qui, giusto? Non è quello di cui sto parlando perché non è quello di cui stai parlando.

Se avessi combinato il colpo di genio + sforzo eroico = risultato che meritassi di essere presentato alla comunità degli sviluppatori come offerta open source in primo luogo, e alla gente piacesse abbastanza da usarlo del tutto, sarei morto di lusinghe. Sarei un grande momento. Come John Reisig o Mark Story. Poco o male. E poi qualche chump è arrivato e ha messo in linea il mio contributo in modo che possano offrirlo commercialmente o nativo nella loro app commerciale? Cadere morto.

Il codice è come la scrittura a mano. Non puoi cambiare un'app più grande di una scatola di fiammiferi in modo abbastanza significativo che un altro sviluppatore legittimo non può diffare i due affiancati e dire "Aspetta un minuto ..." Come sviluppatore, sarei troppo imbarazzato dalla possibilità che i miei colleghi, i miei colleghi, le persone che rispetto e il cui rispetto bramo, scopriranno mai che ho preso il codice di qualcuno. Sarei uno zimbello. Ecco un po 'di epica copia di pasta script kiddie bs. Vuoi davvero delegittimatizzarti agli occhi dei tuoi pari? Il codice Jacking è un buon modo per iniziare.

E come sviluppatore, considera questo: se era la mia app, e ho scoperto che l'hai fatto in modo tale che ti saresti preoccupato di far causa, se avessi deciso di farti causa, stai facendo un pila di soldi grazie al mio codice comunque, quindi perché non dovrei colpirti dove fa male, magari riprenderne un po '? Come fai a sapere che non sono un adolescente o che posseggo un temperamento e una serie di abilità spaventose? Vai fuori dai piedi per pwn r00 [su ur b0xen, per così dire. Dal momento che il jacking della mia app mi mostra che io > tu (base: potrei scrivere quello che potevi solo jack). Non sarebbe la prima volta.

    
risposta data 25.06.2011 - 22:43
fonte
0

Non puoi fare un lavoro derivato del lavoro derivato del lavoro derivato ... e aspettarti che non sia un lavoro derivato. Può diventare irriconoscibile, ma è qualcos'altro. E puoi iniziare da qualsiasi testo e per serie di modifiche ottenere qualsiasi testo (ad esempio, rimuovere il primo, inserire il secondo), in modo che il suo possibile non significhi che è stato fatto. Quindi non è importante se qualcosa è possibile, ma se è realmente accaduto (solo impossibile ovviamente non è accaduto)

Moraly speaking: Imparare da qualsiasi cosa tu possa (legale) ottenere è OK, ma dovresti riconoscere le fonti. il riposo è legalità.

IANAL, ma non penserei di aver fatto qualcosa di sbagliato, se: 1) Ho imparato dall'implementazione open source 2) Implementa lo stesso algoritmo (anche nella stessa lingua) realizzando questo, grandi porzioni diventeranno naturalmente totalmente diverse, e alcuni saranno davvero simili. Se quelle parti simili sono cose in cui entrambe le parti hanno seguito la stessa pratica di codifica e quindi non può essere diverso, quindi queste parti non sono contraffatte. Per esempio. se la classe ha due campi String privati e ha getter e setter, solo la cosa interessante è che questa classe ha due proprietà di lettura / scrittura, non implementazioni di getter e setter.

    
risposta data 03.10.2011 - 13:52
fonte
0

Se riscrivi ogni riga individualmente, potresti o meno "copiare" le righe.

Ma stai copiando letteralmente l'ordinamento, la strutturazione generale e l'inclusione delle linee. In altre parole, il tipo di materiale che rende il lavoro un "tutto".

Stai copiando la parte che dice "questa linea dovrebbe andare qui, questa linea dovrebbe andare lì". Questa è una grande parte dell'algoritmo complessivo.

Inoltre, quando viene avviato un progetto, nessuno sa cosa includere, quali cose devono essere considerate più o meno importanti, come strutturare e comporre gli algoritmi. Questa informazione deve essere prodotta e progettata ad un certo punto. Ma non ne avresti bisogno, perché dovresti "copiarlo".

Ad esempio:

Se ho un set {a, b, c, d, e, f}.

Posso creare un elenco ordinato di loro, [f, e, c, b, d, a]. Devi dire che ho aggiunto alcune informazioni all'elenco, noto come ordering , che non era presente nel set non ordinato. A seconda delle dimensioni dell'elenco, queste informazioni potrebbero essere molto specifiche e difficili da trovare.

    
risposta data 31.10.2013 - 11:33
fonte
-1

È come qualsiasi altra cosa - non puoi disimparare quello che hai imparato, visto, letto ... ma quello che puoi controllare è come lo usi ...

Due cose su questo argomento -

  1. Come la maggior parte delle licenze stipulate per il codice Open Source ... fare una monetina su di esso è assolutamente interessante, il che rende "pseudo" -closed è cool - ma il problema è "credito". Ho acquistato MOLTI script con "crediti" dati (URL del blog, codice OS utilizzato ..., ecc.) Ma il problema è che sei apertamente (non nascondendo) dando i crediti / complimenti per le creazioni di qualcuno (di nuovo, la gente non si preoccupa se lo fai ... molte volte le persone NON danno credito (violando così le clausole di tipo GPL) per paura che le persone si rendano conto che puoi ottenerlo da qualche altra parte ... ma se il tuo codice dà apertamente credito e può ancora stare da solo (indipendentemente dal fatto che il tuo contributo di codice sia chiuso / aperto) - allora alla gente non interesserà.

Quello che trovo come sviluppatore è che le persone non vogliono dare credito, chiuderlo in modo da imitare un grande sviluppatore / programmatore, con il pretesto di fare soldi con gli sforzi di qualcun altro ....

quindi mi diverto a # 2 ...

  1. "intento" è quasi (praticamente) sempre il caso ... puoi stare di fronte a un giudice (dici che sei stato citato in giudizio, portato in tribunale, o chiesto di spiegare le tue azioni per tale motivo) e dichiararlo chiaramente senza borbottare, e con una posizione distinta sulla questione: perché hai preso la decisione di nascondere / chiudere la parte "open source" del tuo codice, allora questo non dovrebbe essere un problema.

il mio 2 pence. :)

Ciò che è divertente - è che la maggior parte della gente pensa di aver inventato una "idea specifica" - quando infatti "l'idea" è probabilmente (estremamente alta probabilità) già sballottata sotto forma di tovaglioli, carta, codice, internet , blog, ecc.

Quindi, anche se potrebbe essere nuovo per te, specialmente dal momento che l'hai visto nel sistema operativo di qualcun altro, probabilmente è usato in altri lavori del sistema operativo da cui hanno derivato il loro sistema operativo ... e in definitiva è probabilmente usato altrove online ... che non è nemmeno con un problema di licenza / copyright dichiarato ... nel qual caso è possibile copiare da quella fonte ... modificare, cambiare, eliminare, aggiungere ... (quindi copio / url a rintraccia dove hai ottenuto per mostrare che l'hai ottenuto legittimamente) al codice come preferisci.

Penso che sia sorprendente in "code-land", in particolare quante volte sono venuto a scoprire che il mio codice "furbo" era già stato scritto (anche se non lo era) .. mind you-lol) nel 2003 su geeky di qualche persona , rank di ricerca su Google di # 1,239, sito Web che hanno realizzato quando erano in una scuola di specializzazione, solo creando funzioni per divertimento e uso gratuito. :)

Il punto è .. dare credito, non ignorare il problema e quando tutto il resto fallisce ... o in caso di dubbio - ASK il sistema operativo originale per i diritti d'uso ... yeesh ! quando siamo diventati così arroganti che non possiamo semplicemente chiedere a qualcuno di usare il loro diserbante, cesoie, falciatrice, ... e - oh sì - una funzione interessante che hanno fatto!

Va bene era 3 pence ...

    
risposta data 24.06.2011 - 16:58
fonte
-4

Concedi una pausa all'uomo!

  1. se un reclamo legale dovesse essere depositato su di lui, ciò significherebbe che qualcuno dovrebbe effettivamente avere accesso al codice e leggerlo. Cosa succede se il software è compilato?

  2. Sarà sempre in grado di invocare la sua ignoranza al momento dei fatti. Nessuno dovrebbe avere una buona fede prima di essere giudicato colpevole?

  3. L'apprendimento non sta copiando. Anche trovare ispirazione in alcuni lavori esistenti non è sicuramente una copia. Quindi, se imparasse da un software la funzione di ogni linea di codice e decide di utilizzare i principi dei risultati per migliorarlo e creare un software migliore, più semplice, più snello. Non copiare IMHO.

Quelli erano i miei 2 centesimi. Ora è il turno del primo senza peccato a lanciare la pietra ...;)

    
risposta data 24.06.2011 - 20:46
fonte

Leggi altre domande sui tag