用Apache 2.0和我的修改文件


37

以纯英语阅读了Apache License 2.0版的原始文本和说明。

好的,我复制世界最佳公司分发的课程,他们的许可证,然后稍微修改一下代码。

原始文件包含我的更改。

/*
 * Copyright (C) 2011 The Best Company in the World
 * 
 * Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.mypackage;

public class MyClass {

    private void someMethod() {
        // Their code
        // My little change
    }
}

然后在我的应用程序中使用MyClass。

  1. 我需要用公司名称还是自己的名字替换“全球最佳公司”?如果没有,我的项目将包含两个许可证:他们的许可证和我的许可证吗?在这种情况下该保存到哪里?
  2. 据我了解,我必须使用Apache Licence 2.0版分发我的应用程序。

维基百科说:

Apache许可证被广泛地(但不是普遍地)认为是允许的,因为它不需要使用相同的许可证来分发软件的派生作品或对原始版本的修改(不同于copyleft许可证-请参见比较)。

Answers:


39

Apache许可证2.0的第4节非常清楚地说明了分发更改的文件时必须执行的操作:

  • 不得删除现有的版权声明(“全球最佳公司”的版权声明)
  • 必须清楚文件已更改。最简单的方法是在原始版权之后添加版权:

    Modifications copyright (C) 2013 <your company/name>
    

    如果您是代表公司进行修改的,那么在大多数情况下,这也是必须在版权声明中加上的名称

  • 可以选择使用其他版权许可进行修改。但是,单个文件具有适用于不同版权许可的多个部分的情况很少见,我怀疑该文件的法律方面已经在法庭上进行了测试,因此我建议不要这样做。

如果您不分发修改(或不在公司外部),则无需执行任何操作。版权许可仅在分发程序/库时起作用。


“可以选择不同的许可证”是否意味着衍生作品可以完全与开源作品相反?像专有的或更严格的东西。
Talha

3
@Talha:只要满足Apache许可证的其他要求(例如通知您的用户该软件的某些部分已获得Apache许可证的许可),派生的工作实际上就可以使用开源许可证。当然,没有必要公开您自己编写的代码。
Bart van Ingen Schenau
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.