代码从一种语言移植到另一种语言 - 许可

时间:2012-06-08 16:30:16

标签: licensing

我将一些代码从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" (my@email.com) 
//
// 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 (xxxyyy@email.com).

4 个答案:

答案 0 :(得分:3)

移植一些代码正在翻译某些代码(将其与翻译其他人的书进行比较)因此受版权保护。您正在创建衍生作品。

顺便说一下。永远不会改变作者信用和版权说明。那是不行的,你在法律上要求麻烦。因此,逐字复制原始声明,不要削弱它。

此外,您通常不能将文件置于类似MIT的许可证下,而部分文件属于MPL AFAIK但是IANAL JASD。

为什么不直接在MPL下许可文件?这是probabyl可以给你的最佳建议。对于其他一切,你应该直接找你的律师。

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


如果你真的想把你工作的那部分工作放在你的许可下,那么你必须非常清楚你的工作地点以及原创工作的位置。

我发现端口/翻译非常难以使其可见,我怀疑这是可能的。

这只是技术上的,因为即使你能够,这也没有说明许可兼容性。当然,您还需要兼容许可证。

因此,出于这两个原因,您应该考虑在与MPL copyleft相同的许可下发布它。

答案 1 :(得分:1)

端口只是对代码的修改。

您违反了MPL第3.1和3.4节,分别声明:

  

您创建或向其提供的源代码表格中的涵盖软件的所有分发包括任何修改必须符合本许可证的条款。您必须通知收件人涵盖软件的源代码表格受本许可证条款的约束,以及他们如何获取本许可证的副本。您不得尝试在源代码表中更改或限制收件人的权利。

...

  

除非您可以更改任何许可,否则您不得删除或更改涵盖软件的源代码表中包含的任何许可声明(包括版权声明,专利声明,担保免责声明或责任限制)的实质内容。通知,以纠正已知的事实不准确性。

所以答案是否定的,你的代码必须保留MPL的条款,并保留原始的评论块。

答案 2 :(得分:1)

通过说您移植代码,您显然正在进行衍生作品,在这种情况下,您需要遵守原始代码的许可。

但是,可以在API中创建“洁净室重新实现” ,您可以在其中使用您希望的任何许可证。它基本上意味着您打印Doxygen文档,并仅基于此编码。如果有人质疑你的方法,你将需要证明你的进展,即。使用SCM提交记录等 通常这样做是不值得的,因为它需要与开发原始软件一样多的工作。

移植只是开发工作的一小部分;你不需要设计,并且很少有机会引入bug。那你为什么要拿走所有的功劳呢?我打赌XXX YYY会生气。我愿意!

答案 3 :(得分:0)

来自MPL FAQ

  

问题9:我想分发(在我的组织之外)MPL许可的来源   我修改过的代码。我该怎么办?

     

要查看完整的要求,请阅读许可证。然而,   一般:

     
      
  • 您必须通知收件人源代码可用   根据MPL(第3.1节)的条款,包括任何   您已创建的修改(如第1.10节中所定义)。

  •   
  • 您必须进行许可证第2节中描述的拨款。

  •   
  • 您必须遵守有关删除或更改通知的限制   源代码(第3.4节)。

  •   

当您第一次移植源并进行更改时,您需要端口的原作者的权限。完成后,您需要遵循上面答案中的指导原则,因为您修改了代码。

您可能还想查看此question