【发布时间】:2016-03-31 01:23:27
【问题描述】:
假设我有一个使用第三方库的项目,例如scopt 在 MIT 许可下发布。
当使用sbt-native-packager 生成可分发的 tarball、zip、deb 等时,我正在重新分发所有依赖项的副本。在重新分发时,我的依赖项的许可条件要求我包含该许可证/版权声明/许可条件的副本(在通常称为二进制形式的重新分发的许可证中)。顺便说一句,sbt-native-packager 还包含一个 Scala 标准库的副本,根据其 3 条款 BSD 样式许可,它也不包含相应的许可条件/版权声明。
默认情况下,sbt-native-packager 在生成的发行版中不包含此类许可证副本/版权声明/...。
我正在寻找一种方便的方式来自动包含所有(包括传递)依赖项的所有许可证/版权声明。
... 否则,我想,如果我发布 sbt-native-packager 生成的原始 tarball,例如GitHub 发布页面,不是吗?
编辑
我想,sbt-native-packager 很难有一个通用的方法将所有许可证/版权通知注入它创建的发行版中,因为 jar 存档和 ivy、maven、sbt 等都没有。为将许可和版权声明添加到存档提供一流的支持。
到目前为止,我看到的唯一建议是 Apache 软件基金会。他们推荐put the license at the top of the jar archive(包含裸许可证文件)和include a NOTICE file as well(包含所有版权声明)。我认为这个建议很好。
我想,对处理所有这些法律问题的支持应该更好。像 sbt 这样的构建工具应该更好地支持这一点,并且更加明显,例如检查所有生成的 jar 档案,如果它们不包含 both LICENSE 和 NOTICE 文件,则在包之类的任务中出错。
【问题讨论】: