2012-06-08 49 views
10

我將一些代碼從C移植到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]). 
+2

難道最好的辦法是檢查http://www.mozilla.org/MPL/,看看它在這件事上有什麼要說的嗎? – JAB

回答

2

端口只是代碼的修改。

你是在違反第3.1和MPL 3.4的,其分別狀態:

涵蓋軟件的源代碼的形式全部分配,包括您創建或您貢獻的任何修改 ,必須符合本許可條款。您必須通知收件人,涵蓋軟件的源代碼表格受本許可證條款的管轄,以及他們如何獲得本許可證的副本。您不得試圖改變或限制源代碼表格中收件人的權利。

...

但您可您不得刪除或更改任何許可聲明(包括版權聲明,專利聲明,擔保免責聲明或責任限制)包含涵蓋軟件的源代碼形式內的物質,修改任何許可證通知到修復已知事實不準確的程度。

所以答案是否定的,你的代碼必須保留MPL的條款,並保留原來的註釋塊。

+1

移植它不是對代碼的修改。這是一項衍生工作。 – dAm2K

+1

@ dAm2K:修飾通常用於描述派生作品是如何製作的。所以我不會把兩個術語相互對立。 – hakre

0

來自MPL FAQ

Q9:我想分發(我的組織之外)MPL授權源 我已修改的代碼。我需要做什麼?

要查看完整的需求集,請閱讀許可證。然而, 一般:

  • 您必須告知收件人的源代碼下的MPL(3.1節)的條款,包括任何 修改提供 他們(在1.10節定義)你已經創建。

  • 您必須提供許可證第2部分中所述的贈款。

  • 您必須遵守刪除或更改源代碼(3.4節)中的通知的限制。

看到你先移植源,然後改變它,你需要原作者的權限的端口。一旦你有了,你需要按照上面的答案指導,因爲你修改了代碼。

你可能也想看看這個question

+0

FAQ在哪裏提到需要移植代碼的權限? – Attila

+0

常見問題解答沒有說明,鏈接問題的答案是。 – thomaux

+0

@Atitila:這也是版權。您需要移植/翻譯代碼的權限。作爲免費軟件許可的MPL允許你(!),但你需要遵守它的要求,這裏是copyleft,所以你需要把你的翻譯/修改也放在MPL下。除非你這樣做,否則你沒有權利移植。所以爲了獲得翻譯權 - 你需要 - 你需要把你的東西放在MPL下。 – hakre

0

通過說你是移植你明確的代碼衍生工作,在這種情況下,你需要遵守原代碼的許可。

但是,可以製作API的「clean room reimplementation」,您可以在其中使用您希望的許可證。它基本上意味着您打印Doxygen文檔,並且僅基於此編碼。如果有人問你的方法,你需要證明你是如何進行的,即。使用SCM提交記錄等。 通常不值得這樣做,因爲它需要開發原始軟件一樣多的工作。

移植只是開發工作的一小部分;你不必設計,並且引入錯誤的可能性很小。那麼,爲什麼你想要獲得所有的信用?我敢打賭XXX YYY會生氣。我會 !

相關問題