GPL - 它对我的项目有何影响?我需要发布我的代码吗?

时间:2012-03-25 09:34:35

标签: licensing gpl

我的一个项目我正在使用FFmpeg,这是一个GPL许可下的图书馆。

我的程序是用C#编写的,我使用命令行启动FFmpeg.exe:

Process Convert = new Process(); Convert.StartInfo = new ProcessStartInfo("DLL\\FFmpeg.exe", "-i Source.avi -f mp4 Dest.mp4"); Convert.Start();

我想知道对我使用GPL库的项目有什么影响。 我是否需要为我的程序使用GPL许可证? (因此发布我的所有代码)

如果我想修改代码,GPL只适用于FFmpeg?

非常感谢

2 个答案:

答案 0 :(得分:2)

简而言之,如果您使用单片二进制文件或单独的库链接某些GPL文件,GPL需要使您的许可证兼容,但如果您将GPLed工具称为单独的进程,则没有此要求。您可以使用不同的工具执行相同的任务,并使用相应的界面修改(作为命令行开关),但它们不会成为您产品的一部分。 Ffmpeg拥有众多竞争对手,因此您可以提供替代品,即使在质量下降的情况下也是如此。

请注意1)我不是律师,2)这种描述相当近似,3)GPLv2和GPLv3之间的确切细节非常不同。但是,在你拥有数百万销售额的大公司之前,你几乎不应该费心去做。)

答案 1 :(得分:1)

这可能会有助https://www.gnu.org/licenses/gpl-faq.html#GPLRequireSourcePostedPublic

GPL是否要求将修改后的版本的源代码发布给公众?

  

(#GPLRequireSourcePostedPublic)GPL不要求你这样做   发布您的修改版本或其任何部分。你可以自由发挥   修改并私下使用它们,而不释放它们。   这也适用于组织(包括公司);一个   组织可以制作修改后的版本并在内部使用它   永远将它释放到组织之外。

     

但是如果你以某种方式向公众发布修改版本,那么   GPL要求您将修改后的源代码提供给   程序的用户,在GPL下。

     

因此,GPL允许发布修改后的程序   某些方式,而不是其他方式;但决定是否   释放它取决于你。

编辑 抱歉,我误解了你的问题。如果您使用GPL lib,那么您的软件必须在GPL许可下发布,这意味着您必须使用源代码分发您的程序。另一方面,LGPL要求提及您使用的库以及您获得的库。