假设我写了一些代码,我们称之为X.它使用了一些GPL代码,我们称之为库Y.显然,我必须使用GPL许可证发布X.没关系。我的问题是,我是否可以在麻省理工学院等许可下另外发布X,这样如果有人只想要X而不是Y,他们不需要将它与GPL一起使用?
答案 0 :(得分:3)
是的,您可以根据自己的任何许可发布源代码。根据美国版权法,您拥有此权利。
但是,如果您在源代码中包含任何GPL源代码(或使用任何GPL代码分发),则必须使用GPL许可证进行整个工作。那是因为你必须同意他们使用他们的代码的许可。
顺便说一句。我不是律师。
答案 1 :(得分:1)
MIT许可证也与GPL兼容,这意味着GPL允许与使用MIT许可证的软件进行组合和再分发。这个link应该为您提供全面的分析。你应该熟悉的库和插件与模块等有很多ifs和buts以及定义。
答案 2 :(得分:1)
这里的关键问题是:如果您仅在MIT许可证(或其他一些相当宽松的开源许可证)下许可X,您的软件X是否可以分发?
该问题的答案是:
如果无法避免对Y的依赖,那么在MIT下发布X本质上会阻止任何人(例如Linux发行版,商业供应商或提供预构建软件的网站)通过GPL许可库分发您的软件在构建中启用。
因此,虽然您可以决定根据MIT许可证许可自己的软件,但通过在此许可下发布,您可能会为所有用户带来麻烦。
我猜它不是你想要的。
我的建议是你下定决心:
我希望这会有所帮助。
答案 3 :(得分:0)
我的理解是,尽管您不是律师,但您可以根据所需的任何许可证许可您的代码,只要您还许可它以与您使用的组件兼容。
如果您的代码依赖在GPL代码上,只要您不使用GPL代码分发,就不需要根据GPL许可。例如,IPython最初使用的是readline,但是他们从显式/必需的依赖项中删除了它,只有在它存在时才使用它,以便它们可以符合GPL,但在他们选择的任何许可下许可他们的软件。 (对不起,我找不到参考资料。)
答案 4 :(得分:-1)
是的,您可以使用GPL库;只要您dynamically link,就不要使用GPL许可。否则Linux内核就不会有很多驱动程序。
这意味着您必须拥有单独的可执行文件(和/或有关您使用该软件的文档);在运行时而不是编译时加载。这也意味着您离Dependency HELL!!!
更近了一步Dependency HELL有几个领域,这里没有特别的顺序:
多个循环的多个长链和相互冲突的依赖,它会让你的大脑挣脱你的灵魂!