我目前正在做一个项目,在这个项目中,我们使用开源库(GPL)进行一些特定的算法和计算。这将在稍后被我们自己的实现所取代。
我现在想知道的是,在实现您自己的库时,您可以让自己在多大程度上受到开源实现的“帮助”或“启发”,这些库应该在以后被封闭源代码应用程序使用。将一些代码段或过程直接从开源软件复制到您的实现中是不合法的。但是,在不违反GPL条件的情况下,您可以在多大程度上遵循开源实现?如果你研究并理解源代码,那么在此基础上做你自己的实现是合法的吗?
发布于 2010-08-06 17:33:56
这与重新实现商业产品时的应用程序基本相同。
这通常是在净室风格中完成的--一个团队将彻底分析产品,为它所做的事情产生一个规范,然后另一个团队(其成员不是来自原始团队)仅使用规范文档来实现替换。
正如tdammer所说,理解算法并进行新的实现通常是很好的(不包括专利问题)。
一旦你开始编写自己的实现,你真的应该避免引用实际的GPL代码-如果你引用它,你很可能最终无法想到自己的函数名称,最终使用与GPL代码相同/相似的函数名称。虽然从技术上讲这可能不是一个问题,但如果有人发现了它,你会招致各种各样的指责,所以最好完全避免这个问题。
发布于 2010-08-06 17:10:06
版权仅保护算法的特定实现和描述(例如学术论文),而不保护算法本身。复制-粘贴显然是一种违规,就像复制-粘贴然后模糊或扩展一样。理解算法,然后创建你自己的,本质上不同的实现应该是可以的。
然而,也可能有一个算法的专利,这是一个不同的故事。
https://stackoverflow.com/questions/3422351
复制相似问题