11

我将一些代码从 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

4 回答 4

3

移植一些代码就是翻译一些代码(与翻译别人的书相比),因此受版权保护。您正在创作衍生作品。

顺便说一句。永远不要更改作者信用和版权说明。那是不行的,你这样做是在合法地自找麻烦。因此,逐字复制最初的陈述,不要削弱它。

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

为什么不只许可 MPL 下的文件呢?这可能是一个可以给你的最好的建议。对于其他一切,你应该直接去找你的律师。

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


如果您真的想将属于您的作品的那部分作品置于您的许可之下,您必须使您的作品在哪里以及原始作品在哪里变得非常明显。

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

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

所以由于这两个原因,你真的应该考虑在与 MPL 拥有copyleft相同的许可下发布它。

于 2012-06-13T23:36:18.470 回答
2

移植只是对代码的修改。

您违反了 MPL 的第 3.1 和 3.4 节,它们分别规定:

所有以源代码形式分发的涵盖软件,包括您创建或贡献的任何修改,都必须遵守本许可的条款。您必须告知收件人,涵盖软件的源代码表格受本许可条款的约束,以及他们如何获得本许可的副本。您不得尝试更改或限制接收者在源代码表单中的权利。

...

您不得删除或更改包含在涵盖软件的源代码形式中的任何许可通知(包括版权通知、专利通知、免责声明或责任限制)的内容,除非您可以更改任何许可通知以纠正已知的事实不准确所需的范围。

所以答案是否定的,你的代码必须保持 MPL 的条款,并保持原来的注释块。

于 2012-06-13T15:02:37.517 回答
1

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

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

移植只是开发工作的一小部分;您不必设计,并且引入错误的机会很小。那么你为什么要承担所有的功劳呢?我打赌 XXX YYY 会生气的。我会 !

于 2012-06-17T15:44:44.373 回答
0

从 MPL常见问题解答

Q9:我想分发(在我的组织之外)我修改过的 MPL 许可源代码。我需要做什么?

要查看完整的要求集,请阅读许可证。但是,一般来说:

  • 您必须通知接收者,根据 MPL(第 3.1 节)的条款,包括您创建的任何修改(如第 1.10 节中定义),向他们提供源代码。

  • 您必须进行许可第 2 节中所述的授权。

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

由于您首先移植了源代码,然后对其进行了更改,因此您需要获得原作者的许可才能移植。完成后,您需要遵循上述答案中的指南,因为您修改了代码。

您可能还想看看这个问题

于 2012-06-11T08:27:56.410 回答