2012-06-08 4 views
10

Ho portato un po 'di codice da C a C# e ho aggiunto alcune nuove funzionalità nel codice trasferito. Il codice originale è sotto la licenza MPL.Codice trasferito da una lingua all'altra - licenza

Questo è un codice sorgente originale termini di licenza:

/* 
* file name 
* Version ..... 
* 
* Copyright (c) 2004-2012 by XXX YYY 
* 
* The contents of this file are subject to the Mozilla Public License Version 
* 1.1 (the "License"); you may not use this file except in compliance with 
* the License. You may obtain a copy of the License at 
* http://www.mozilla.org/MPL/ 
* 
* Software distributed under the License is distributed on an "AS IS" basis, 
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 
* for the specific language governing rights and limitations under the 
* License. 
* 
* The Original Code is file.c 
* 
* The Initial Developer of the Original Code is XXX YYY. 
* 
* Portions created by XXX YYY are Copyright (C) 2004-2012 
* XXX YYY. All Rights Reserved. 
* 
*/ 

Posso cambiare la licenza per il codice porting e comprendono termini di licenza il codice sorgente originale del codice sorgente originale in questo modo:

// 
// test.cs 
// 
// Author: 
// "My Name" ([email protected]) 
// 
// Copyright (c) 2012 My Name 
// 
// Permission is hereby granted, free of charge, to any person obtaining 
// a copy of this software and associated documentation files (the 
// "Software"), to deal in the Software without restriction, including 
// without limitation the rights to use, copy, modify, merge, publish, 
// distribute, sublicense, and/or sell copies of the Software, and to 
// permit persons to whom the Software is furnished to do so, subject to 
// the following conditions: 
// 
// The above copyright notice and this permission notice shall be 
// included in all copies or substantial portions of the Software. 
// 
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 
// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 
// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 
// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
// 
// Parts of this source code are ported from C to C# by "My Name". 
// 
// The Original Code is file.c (http://original-source-code-link.com); 
// and under Mozilla Public License Version 1.1 (http://www.mozilla.org/MPL/) 
// The Initial Developer of the Original Code is XXX YYY ([email protected]). 
+2

non sarebbe la cosa migliore da fare sia per controllare http://www.mozilla.org/MPL/ e vedere che cosa ha da dire sulla questione? – JAB

risposta

2

Una porta è semplicemente una modifica del codice.

Sei in violazione della sezione 3.1 e 3.4 del MPL, che dichiarano rispettivamente:

Tutti distribuzione del software coperto in Source Code Form, comprese le eventuali modifiche create oa cui Voi contribuite , deve essere sotto i termini di questa licenza. È necessario informare i destinatari che il Modulo codice sorgente del Software coperto è regolato dai termini di questa Licenza e in che modo è possibile ottenere una copia di questa Licenza. Non è possibile tentare di alterare o limitare i diritti dei destinatari nel modulo Codice sorgente.

...

L'utente non può rimuovere o alterare la sostanza di eventuali avvisi di licenza (inclusi gli avvisi di copyright, gli avvisi di brevetto, esclusioni di garanzia, o limitazioni di responsabilità) contenuti all'interno del codice sorgente Forma del software coperto, tranne che si può modificare eventuali avvisi di licenza nella misura richiesta per rimediare a inesattezze di fatto note.

Quindi la risposta è no, il codice deve mantenere i termini della MPL e mantenere il blocco del commento originale.

+1

Un porting NON è una modifica del codice. È un lavoro derivato. – dAm2K

+1

@ dAm2K: una modifica viene spesso utilizzata per descrivere come viene eseguito un lavoro derivato. Quindi non metterò entrambi i termini l'uno contro l'altro. – hakre

0

Dal MPL FAQ:

Q9: Desidero distribuire (fuori dalla mia organizzazione) codice sorgente con licenza MPL che ho modificato. Cosa devo fare?

Per visualizzare il set completo di requisiti, leggere la licenza. Tuttavia, genere:

  • è necessario informare i destinatari che il codice sorgente è reso disponibile a loro sotto i termini della MPL (sezione 3.1), comprese eventuali modifiche (come definito nella sezione 1.10), che tu hai creato.

  • È necessario effettuare le sovvenzioni descritte nella sezione 2 della licenza.

  • È necessario rispettare le restrizioni sulla rimozione o modifica delle note nel codice sorgente (Sezione 3.4).

Visto che prima effettuato la portabilità la fonte e poi alterato, è necessario permesso dell'autore originale per la porta. Una volta che hai questo, devi seguire le linee guida nella risposta sopra perché hai modificato il codice.

Si potrebbe anche voler dare un'occhiata a questo question.

+0

Dove fa riferimento alle FAQ la necessità di autorizzazione per il porting del codice? – Attila

+0

Le FAQ non dicono che, la risposta nella domanda collegata fa. – thomaux

+0

@Attila: anche questo è protetto da copyright.È necessaria l'autorizzazione per il porting/traduzione del codice. MPL come licenza per software libero ti consente di (!), Ma devi soddisfare i requisiti, qui il copyleft, quindi devi anche tradurre la tua traduzione/modifica in MPL. Se non lo fai, non hai il diritto di porto. Quindi per ottenere i diritti di tradurre - di cui hai bisogno - devi mettere i tuoi contenuti sotto MPL. – hakre

3

Il porting di un codice sta convertendo del codice (confrontarlo con la traduzione di un libro di qualcun altro) e quindi soggetto a copyright. Stai creando un lavoro derivato.

E btw. mai e poi mai cambiare i crediti dell'autore e le note sul copyright. Questo è un no-go, stai chiedendo dei problemi legalmente. Quindi copia letteralmente la dichiarazione originale, non paralizzarla.

Inoltre, normalmente non è possibile inserire un file con una licenza simile al MIT mentre parti di esso sono in MPL AFAIK ma IANAL JASD.

Perché non solo autorizzare il file anche in MPL? Questo è probabilmente il miglior suggerimento che puoi darti. Per tutto il resto dovresti andare direttamente dal tuo avvocato.

http://en.wikipedia.org/wiki/Mozilla_Public_License


Se si vuole seriamente mettere quella parte del lavoro che è il tuo lavoro sotto la licenza, è necessario rendere molto visibile in cui il tuo lavoro è, e dove l'opera originale è.

Trovo estremamente difficile per una porta/traduzione renderlo visibile e dubito che ciò sia possibile.

E questo è solo tecnicamente, perché anche se ne sei capace, questo non dice nulla sulla compatibilità delle licenze. Certo, devi avere anche la compatibilità della licenza.

Quindi, a causa di questi due motivi, si dovrebbe davvero prendere in considerazione per rilasciarlo sotto la stessa licenza MPL ha copyleft.

0

Dicendo che si è porting il codice che si sta chiaramente facendo un lavoro derivato, nel qual caso è necessario rispettare la licenza del codice originale.

Tuttavia, è possibile fare una "stanza reimplementazione pulita" di un'API, in cui è possibile usare qualsiasi licenza che si desidera. In pratica significa che si stampa la documentazione Doxygen e il codice è basato solo su questo. Se qualcuno mette in dubbio il tuo approccio, dovrai dimostrare come procederai, ad es. utilizzando record di commit SCM, ecc. Di solito non vale la pena farlo, poiché richiede tanto lavoro quanto lo sviluppo del software originale.

porting è solo una frazione dello sforzo di sviluppo; non devi progettare e pochissime possibilità di introdurre bug. Allora perché vuoi prendere tutto il merito? Scommetto che XXX YYY sarebbe incazzato. Vorrei !