MySQL ++通过LGPL获得许可,这意味着我可以发布动态链接的可执行文件而不必担心源代码不是GPL。 但是,MySQL ++会链接到libmysqlclient {_r}。{a,so}(http://tangentsoft.net/mysql++/#linkerrors),这是GPL。 正如所见,MySQL ++在技术上只是一个'包装器'(顺便说一下,一个非常好的实现包装器,不要误解我)对GPLed libmysqlclient {_r}。{a,so},如果我链接MySQL ++就像链接{的libmysqlclient _r}。{一个,所以}?
如果是这种情况,那么MySQL ++作为LGPL的目的是没有意义的,因为任何动态链接它的可执行文件必须然后链接到libmysqlclient {_r}。{a,so}。我哪里错了?
答案 0 :(得分:4)
如果您的程序是根据MySQL发行版中EXCEPTIONS-CLIENT
文件中列出的许可之一获得许可的,那么您的程序不必与GPL兼容即可使用MySQL客户端库。
但总的来说,是的,如果您想链接到GPL库,那么您的程序必须与GPL兼容。
答案 1 :(得分:3)
您可能需要咨询律师。我不是一个人。但是有些事情需要考虑:
请记住,(L)GPL的权力来自版权。如果A是B的派生作品,您需要获得B版权所有者的许可才能分发。如果不是A,则不需要分发A的许可。如果A来自B,但B来自C,A可能来自也可能不来自C.您需要得到所有版权所有者的许可才能分发他们的作品或衍生作品作品。 (L)GPL指定在什么条件下自动授予许可。
答案 2 :(得分:1)
我相信你是正确的,认为链接反对GPL库B的LGPL库A与链接GPL库相同,因此需要你的程序在GPL下。
所以我同意libmysql ++是LGPL是没有意义的,但我认为可能是这样,因为旧版本的MySQL客户端库使用是LGPL。 (现在,他们都是完整的GPL,正如你所注意到的那样)
答案 3 :(得分:1)
Oracle(neéSun,neéMySQLAB)很高兴sell您获得C API库的GPL豁免。然后,您可以将MySQL ++ DLL与您的程序一起分发,并且只受LGPL的约束。