我目前正在攻读研究生,重点是研究背景下的数据分析/信息学,并为全球研究社区开发实用工具,我的绝大多数目标用户都是计算机新手。换句话说,我的大多数用户不会费心(或无法)收集必要的依赖项并将它们放在他们的类路径中。为了避免人们忽略我的软件,我一直将它作为“fat-jar”分发,所有依赖项都包含在一个可执行文件中。
我一直在阅读一些关于软件许可的内容,并意识到如果不关注库的单个许可,这样做在法律上可能会很棘手。我在 StackOverflow(下面是一个完整的集合)上解决了许多问题,但最终变得越来越困惑。请注意,我完全意识到还有许多其他关于软件许可的问题,但不是在自包含软件包的背景下,我在下面列出了许多很好的问题,这些问题提供了一些难题,但在我的设想。
如果对此事有更多经验/了解的开发人员可以通过确认或否认以下陈述来阐明此事,我将不胜感激。我认为这对于那些不是程序员而是专业但越来越多地进入编程的人来说可能很有用。我的理解是:
只要您不重新分发依赖项,与您为自己的项目选择的许可证相比,它们拥有什么许可证并不重要。[不幸的是,这样做也意味着我会疏远/恐吓我的大部分用户群]
如果您要重新分发所有依赖项,那么您的项目许可证应该与您的依赖项兼容。[因此,作为开发人员,我必须了解每个依赖项的许可证详细信息??]
GPL 是目前最严格的开源许可证(来自普通许可证),因此如果我使用 GPL 许可证下的库,我自己的项目也必须遵循 GPL,这在理论上可能与其他一些许可证相矛盾依赖。
假设我的项目在 GPL 下,该项目是非商业的这一事实并不重要,它也必须是开源的。[这在我的情况下相当棘手,因为算法和计算方法需要“新颖”才能发表]
我是否误解了或只是错过了一些重要的事情,或者这是对情况的一个很好的总结?鉴于我的情况,我是否还有其他可能没有在这里提到/想到的选项,例如是否可以避免与我的依赖项的许可证有关的问题?
参考:
如何判断我是否可以在商业应用程序中重复使用“免费”软件库?[关闭]