为了将 GPL 添加到 C# 项目,我需要在哪些文件中添加标题注释?
表单生成的代码是否需要它?
是否只需要在每个 *.cs 文件中?
是否有将 GPL 添加到任何类型的项目所需的资源或语言特定步骤的详细列表?
规范的答案在GPL Howto中:
无论您打算使用哪种许可证,该过程都涉及向程序的每个源文件添加两个元素:版权声明(例如“Copyright 1999 Terry Jones”)和复制许可声明,说明该程序是根据GNU 通用公共许可证(或小 GPL)的条款。
应用 GPL 的推荐标头是:
版权所有 200X 我的名字
该文件是 Foobar 的一部分。
Foobar 是免费软件:您可以根据自由软件基金会发布的 GNU 通用公共许可证的条款重新分发和/或修改它,许可证的第 3 版或(由您选择)任何更高版本。
Foobar 的分发是希望它有用,但没有任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关详细信息,请参阅 GNU 通用公共许可证。
您应该已经收到了一份 GNU 通用公共许可证的副本以及 Foobar。如果没有,请参阅http://www.gnu.org/licenses/。
是的,它应该被添加到每个文件中,因为你不能合法地依赖于每个收件人都收到你的作品作为一个整体的假设。而且,不,它不必是完整的许可证文本。
您实际上不需要为每个文件添加 GPL 通知。您可以在根文件夹中的许可证文件中指定整个项目的许可证,仅此而已。
编辑:推荐的做法是在每个文件中添加通知。但不这样做不会使许可证无效或改变其含义。
提示: Resharper for Visual Studio 有很好的指定文件头的特性(选项-语言-通用-文件头文本)。
如果您指定它,然后对整个解决方案执行“代码清理”,则每个 *.cs 文件都将获得更新的标头。
这就是我将许可证标题添加到我的开源项目的方式,
GPL 是一种许可证——没有“要求”在每个源文件中包含许可证的实际文本。
只需提供一个名为 license.txt 的文件,其中包含您项目中的许可证就足够了。
如果我错了,请告诉我你从哪里得到这个要求?
Monodevelop 建议在每个文件中添加以下内容:
${文件名}
版权所有 (C) ${Year} [作者姓名]
该程序是免费软件;您可以根据自由软件基金会发布的 GNU 通用公共许可条款重新分发和/或修改它;许可证的第 2 版,或(由您选择)任何更高版本。
分发此程序的目的是希望它有用,但不提供任何保证;甚至没有对适销性或特定用途适用性的默示保证。有关详细信息,请参阅 GNU 通用公共许可证。您应该已经收到了一份 GNU 通用公共许可证的副本以及该程序;如果没有,请写信给 Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
请注意,FSF 的邮寄地址不是 59 Temple Place,而是下面的地址。
Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
不搞砸许可证文本的唯一方法是从 GNU 网站获取它。请注意,该站点具有纯文本格式的许可证,与 html 相比,这通常是首选格式。