【问题标题】:include LICENSE and copyright NOTICE files in sbt在 sbt 中包含 LICENSE 和 copyright NOTICE 文件
【发布时间】: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 文件,则在包之类的任务中出错。

【问题讨论】:

    标签: sbt sbt-native-packager


    【解决方案1】:

    回答您的问题:AFAIK 无法在 sbt-native-packager 中以一般方式处理许可证。例如。将它们放在单独的目录中或列出它们。

    话虽如此,但出于几个原因,我认为这并不是真正必要的。我不是拥护者,所以这只是我的理解。

    1. 如果您有 git tarball,则不包含任何依赖项。只有一个声明它们的构建文件。所以你没有分发任何代码。所以应该没问题

    2. 当您构建可执行二进制文件时,您不仅会包含代码,还会包含整个 jar,它通常包含所有许可和版权提示。从技术上讲,您已经包含了所有内容。

    我没有看到围绕该主题的任何问题或其他构建工具(如 maven/gradle)处理此问题的方式。解决方案会是什么样子?如果这是一个问题?

    更新

    我找到了这个sbt-license-report plugin,它应该会生成您需要的信息。如果这是您正在寻找的内容,我很乐意合并更新 sbt-native-packager 文档的拉取请求 :)

    【讨论】:

    • 你的理由 #2:我已经检查了 jars,其中既没有许可证文件也没有版权声明。
    猜你喜欢
    • 2014-07-09
    • 2014-09-07
    • 2015-11-06
    • 2013-01-09
    • 2017-10-16
    • 1970-01-01
    • 2017-10-17
    • 2020-12-24
    • 1970-01-01
    相关资源
    最近更新 更多