Код, перенесенный с одного языка на другой - лицензирование

Я портировал код с C на С#, а также добавил некоторые новые функции в портированный код. Оригинальный код находится под лицензией MPL.

Это исходные условия лицензии на исходный код:

/*
 * 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.
 *
 */

Можно ли изменить лицензию на портированный код и включить исходные исходные коды исходного кода исходного кода следующим образом:

//
// 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]).

Ответ 1

Порт - это просто модификация кода.

Вы нарушаете разделы 3.1 и 3.4 MPL, которые соответствуют соответственно:

Все распространение Covered Software в исходной кодовой форме, , включая любые модификации, которые вы создаете или которые вы вносите, должны соответствовать условиям настоящей Лицензии. Вы должны сообщить получателям, что форма исходного кода Покрытого программного обеспечения регулируется условиями настоящей Лицензии и как они могут получить копию этой Лицензии. Вы не можете пытаться изменить или ограничить права получателей в форме исходного кода.

...

Вы не можете удалять или изменять сущность любых уведомлений о лицензии (включая уведомления об авторских правах, уведомления о патентах, отказ от гарантий или ограничения ответственности), содержащиеся в форме исходного кода закрытого программного обеспечения, за исключением того, что вы можете изменить любую лицензию уведомлений в объеме, необходимом для устранения известных фактических неточностей.

Итак, ответ отрицательный, ваш код должен содержать условия MPL и сохранить исходный блок комментариев.

Ответ 2

Портирование некоторого кода - это перевод некоторого кода (сравните его с переводом книги кого-то другого) и, следовательно, подлежат авторскому праву. Вы создаете производную работу.

И кстати. никогда не изменяйте авторские кредиты и записи об авторских правах. Это нехорошо, вы просите о неприятностях на законных основаниях. Так что скопируйте исходное утверждение дословно, не калечите его.

Также вы обычно не можете поместить файл под лицензией MIT, в то время как части его находятся в MPL AFAIK, но IANAL JASD.

Почему просто не лицензировать файл под MPL? Это самое лучшее предложение, которое вы можете дать вам. За все остальное вы должны пойти прямо к своему адвокату.

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


Если вы серьезно хотите поставить ту часть работы, которая является вашей работой под вашу лицензию, вы должны сделать очень заметным, где ваша работа, и где оригинальная работа.

Мне кажется чрезвычайно трудным для порта/перевода сделать это видимым, и я сомневаюсь, что это возможно.

И это только технически, потому что, даже если вы в состоянии, это ничего не говорит о совместимости с лицензиями. Уверен, что вам также нужна лицензионная совместимость.

Таким образом, из-за этих двух причин вам следует подумать о том, чтобы выпустить его под той же лицензией, что и MPL copyleft.

Ответ 3

Из MPL FAQ:

Q9: Я хочу распространять (вне моей организации) источник, лицензированный MPL код, который я изменил. Что мне делать?

Чтобы ознакомиться с полным набором требований, прочитайте лицензию. Однако, как правило,

  • Вы должны сообщить получателям, что исходный код доступен им в соответствии с условиями MPL (раздел 3.1), включая любые Модификации (как определено в Разделе 1.10), которые вы создали.

  • Вы должны предоставить гранты, описанные в разделе 2 лицензии.

  • Вы должны соблюдать ограничения на удаление или изменение уведомлений в исходный код (раздел 3.4).

Увидев, как вы перенесли исходный код и затем изменили его, вам потребуется разрешение оригинального автора для порта. После этого вам нужно будет следовать рекомендациям в ответе выше, потому что вы изменили код.

Вы также можете взглянуть на этот question.

Ответ 4

Говоря, что вы портируете код, в котором вы явно делаете производную работу, в этом случае вам необходимо выполнить исходную лицензию кода.

Тем не менее, можно выполнить переопределение "чистой комнаты" API, где вы можете использовать любую лицензию. Это в основном означает, что вы печатаете документацию Doxygen и код только на основе этого. Если кто-нибудь задаст вам вопросы, вам нужно будет доказать, как вы это делали, т.е. используя записи фиксации SCM и т.д. Обычно этого не стоит делать, поскольку он требует такой же работы, как разработка оригинального программного обеспечения.

Портирование - это лишь небольшая часть усилий по разработке; вам не нужно разрабатывать и очень мало шансов внедрить ошибки. Так почему вы хотите взять кредит? Бьюсь об заклад, XXX YYY будет злиться. Я бы!