我知道有很多类似的问题,但我的问题比平常更具体一些。
我正在编写一个跨平台的共享(.so)C库,用于解析数学序列,我想在完成工作之后出售我的库。您可能知道,libc和glibc (据我所知)是LGPL,这意味着有人可以将它们链接到Linux上的专有/商业软件.
我的问题是,我的库是用-nostdlib编译的,这意味着它既不使用libc例程,也不使用linux上的任何其他库。
另一方面,Linux库包含头文件,并广泛使用linux系统调用,例如用于自定义内存管理的内存映射。
的问题是:我可以让我的库完全关闭源代码并在知道Linux内核在GPLv2下的情况下把它卖掉吗?如果是这样的话,(无论是静态库还是共享库)对许可有影响吗?
P.S:从技术上讲,这是一个个人项目,我只是想卖掉它,赚点钱,但是如果没有办法去做,那也没关系。
谢谢你的阅读和事先的回答。
发布于 2014-06-09 17:31:21
您不能使用GPLV2关闭源(至少从一开始就不是这样)。检查这里的条款-
您可以根据上文第1节和第2节的规定,以目标代码或可执行形式复制和分发该程序(或以其为基础的作品,根据第2节),条件是您还必须执行以下操作之一: ( a)随附完整的相应的机器可读的源代码,这些源代码必须按照上文第1节和第2节的规定在通常用于软件交换的媒介上分发;或 ( b)连同一份有效至少3年的书面要约,向任何第三方提供一份完整的机器可读的相应源代码副本,费用不超过你实际执行源分发的成本,根据上文第1节和第2节的规定,在通常用于软件交换的媒介上分发;或 ( c)随信附上你收到的关于分发相应源代码的提议的信息。(这一选择只允许非商业分发,而且只有当您按照上文b小节的规定以目标代码或可执行形式接收到该程序时,才有此优惠。)
在其他继承中,GPLv2必须是开源的,至少在一段时间内是开放的。
你可以在这里查看完整的说明书-
http://www.gnu.org/licenses/gpl-2.0.html
,但是同样,你应该咨询一个有执照的律师,我们不是这里的律师,所以你很可能不会在这里得到一个完整或详细的答案。
发布于 2014-09-30 13:18:14
您应该检查头文件的许可是否传播到您的代码(也可以读取此链接 )。
无论如何,可以通过依赖syscall函数(请参阅man )来避免包含头文件来避免此问题。
发布于 2014-11-08 02:17:13
就像许多其他用户空间二进制库(例如,Nvidia,VMware)一样,有一个内核组件和一个用户空间组件。对于内核,它总是作为开放源码发布,但从来没有用户空间。内核只用于与硬件的接口(比如GPU和VMenter/VMexit),但是用户空间实现了所有的逻辑。但是,如果您认为所有与内核的接口都可以单独通过syscall完成,那么无论如何都不需要发布源代码。
但是卖图书馆确实是赚钱的糟糕选择--如今程序员有很多数学库可供选择(来自github、sourceforge和BSD等)。例如,
基于https://github.com/bebraw/jswiki/wiki/Math-libraries -> js,意味着基于浏览器是可能的?https://github.com/ampl/mp http://www.netlib.org/cephes/ ->400个高质量的数学函数在C.
生产力需要超越性能需求--这可能迫使他们转而使用Python。(例如,SciPy)。
http://scipy-lectures.github.io/advanced/sympy.html
但不要过分劝阻你,有英特尔的数学内核:
https://software.intel.com/en-us/intel-mkl
这是一种商业产品。
平衡你的选择。
https://stackoverflow.com/questions/24125212
复制相似问题