Код, перенесенный с одного языка на другой - лицензирование
Я портировал код с 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 будет злиться. Я бы!