4

关于此评论的以下摘录:

AFAIK,通过网络适配器与 GPL 代码交互很好。拥有比这更紧密耦合的代码通常是不行的(再次,AFAIK),特别是如果您的代码没有 GPL 代码就无法运行,但这是一个灰色区域。

因此,如果我想使用 GPL(而不是 LGPL)的图形库,我是否可以决定让它成为 linux 计算机上图形服务的一部分,只要我发布使用这个库实现此服务的代码?

假设库实现了 SVG,我决定用 SVG 来绘制矢量图形的所有屏幕。我没有将 SVG 滚动到我的几个应用程序中(并因此打开它们的源代码),而是创建了一个服务(或内核驱动程序),它侦听套接字(或实现图形设备),该套接字获取 SVG 数据并将其渲染到屏幕使用图书馆。我根据库的 GPL 发布服务/内核驱动程序代码。我不会为使用该服务或内核驱动程序的任何程序发布代码。我发布了服务/内核驱动程序的 API,以便其他人可以实现、替换它,并且仍然使用不同的服务/驱动程序运行我的二进制文件,或者开发反射器等。

  • 我是否违反了 GPL 的法律条款
  • 我是否违反了 GPL 的精神

我敢肯定其他人已经考虑过这一点 - 它是否发生过,社区的反应是什么?

-亚当

4

4 回答 4

4

我同意之前的评论,即就 GPL 的精神而言,这看起来很糟糕。无论如何,这样做可能会在社区中遇到一些阻力,其形式可能如下:

  • 不将您的工作重新检入项目主干
  • 如果单独发表,不分发您的作品
  • 签入,然后根据他们认为合适的方式修改 API,而不考虑它如何影响您关闭的程序,并通过正常渠道分发更改后的版本(实际上保证了您的用户的 dll 地狱)

而且当然

  • 编写、分发和推动竞争性前端。

所以你可能会问自己是否值得。(请记住,基于声誉的社区可能会对某些轻视有很长的记忆。)


过去社区对 GPL 的狡猾方法的反应包括:

  • GPLv3 的结构使得其中一些技巧更加困难
  • linux 内核社区中的一个广泛联盟,反对包含加载封闭固件的模块。
  • 点名和羞辱违规者,以及(同样重要的)公开承认那些已经清理了他们的行为的人。
于 2008-10-29T19:41:00.003 回答
2

迟早你可能会想请律师来解决这么深的问题。关于你的第二个问题:对我来说,你在给定的情况下违反了 GPL 的精神。

当我将 MySql 许可与此进行比较时,我看到许多商业应用程序已通过商业许可分发并安装了 GPL 版本的 MySql。我不想判断这是否合法,但是对于数据库服务器和现有的抽象来说,它或多或少是自然的:应用程序接口与通用数据库接口(odbc、jdbc、任何 perl/php/ruby 等价物)这是通过驱动程序与许多应用程序之一交谈。

心甘情愿地将 GPL 软件变成服务器,创建接口层并将 GPL 版本作为该接口的唯一实现感觉很糟糕。

与作者取得联系并要求获得商业或更宽松的开源许可证可能更容易。当然,如果它对您有任何价值,您应该主动提出付款。从您的深层问题来看,它似乎对您具有更高的价值。

于 2008-10-29T19:17:50.940 回答
1

义务 我不是律师。

您是否违反了 GPL 的法律条款?可能不是。ATI 和 nVidia 用他们的 Linux 图形驱动程序来做这种事情。但是,重要的是要注意 Linux 是 GPLv2;这可能已经随着 GPLv3 改变了。

你违反了 GPL 的精神吗?是的,从你写问题的方式来看,你已经知道了。

于 2008-10-29T19:24:15.620 回答
1

一个好的经验法则是:如果你想知道你是否违反了 GPL 的精神,那么你可能是。

于 2008-10-29T19:30:42.677 回答