如何组织开源发布项目

时间:2012-02-29 20:15:45

标签: open-source licensing project-management

我打算以开源的方式发布个人项目,主要用于教育(如果有的话)。它只是Windows。

我自己的代码将在MIT许可下发布,但我也使用这个库/组件:

  • ODE
  • Scintilla的
  • Scintilla PJ Naughter组件
  • glaux

除了确保我包含这些库许可文件之外,我应该如何将它们集成到源代码发布树中?

目前,每个人都使用特定的版本/修订版本,我根据源代码文件和二进制库文件手动定制或构建和集成。这够了吗?我不想用最终的第三方源代码树对生成的包进行负担,但同时我希望它可以从头开始编译。

另外,我想要包含我最终编译的可执行文件。这皱眉了吗?我将使用VirusTotal检查生成的exe。

2 个答案:

答案 0 :(得分:2)

至少,您应该添加一个COPYING文件,其中包含所用许可证的全文(例如MIT)。我认为这是唯一需要的文件。

我通常还包括NEWSAUTHORS。添加DEPENDENCIES文件也是一个好主意。

答案 1 :(得分:1)

  

我自己的代码将在MIT许可下发布,但我也使用这个库/组件:[...]

     

目前,每个人都使用特定的版本/修订版本,我根据源代码文件和二进制库文件手动定制或构建和集成。这够了吗?我不想用最终的第三方源代码树对生成的包进行负担,但同时我希望它可以从头开始编译。

由于您希望为其他人提供应用程序以修补它,在仅二进制版本旁边,您可能希望提供一种“SDK”版本,其中包含您的代码作为源代码,库依赖项作为二进制文件。

由于您还希望能够从所有源代码进行编译,因此您应该出于实际原因为每个版本创建完整的源代码包。

创建一个能够自动构建每个包的脚本。将构建脚本也置于版本控制之下。如果您现在没有任何修订控制,请先将源树置于修订控制之下。

这仅仅是实用的建议,因此您可以实现您正在寻找的内容,同时为其他用户提供良好的程序可访问性。

对于您列出的库/组件的许可,我试图了解更多信息。如果适用,我从SPDX Open Source License Registry获得了短标识符。它包含每个许可证的链接,因此它是一个很好的工具,可以对包的许可证情况进行分类:

(IANAL)看起来这些都是许可类型的许可证,因此您几乎没有义务发布源代码。两个注意事项:

  1. 我无法获取有关 GLAux 的信息。您可能希望查看适用许可的源文件。找到更多内容有点复杂,似乎该库已被弃用。我看到的是它是OpenGL项目的一部分,但我不知道你使用哪些源文件以及你从哪里获得它们。

  2. Scintilla PJ Naughter组件具有非标准许可证,不允许分发已修改的源代码。但是你可以保持代码不变。我认为原作者的意图是他不希望在他自己的旁边发布其他源代码(fork但不改变fork)。我会说你应该尽可能地遵守,如果你不能再与原作者联系并讨论这个问题。如果这不能解决实际的解决方案,您可能需要联系律师,了解您在该案件中拥有的权利,以取代原作者所表达的版权限制。

  3.   

    另外,我想要包含我最终编译的可执行文件。这皱眉了吗?我将使用VirusTotal检查生成的exe。

    为什么要这样做,这将使那些不能或不想编译的人可以访问该软件。

    如果您正在寻找一个在这些条款下接受您的repro的公共源代码存储库,github会这样做。他们唯一的义务是源代码是可见的,并且repo可以分叉 - 因为这对代码和每个分支给出的权利没有多少说明,使你明确的代码的许可。谷歌代码等其他网站不允许这样做,因为他们只接受OSI批准的许可下的代码,但 Scintilla PJ Naughter组件不适用。

    添加文件rainbru suggested