我打算使用 /引用别人开源项目的多个文件,但是不知道怎么做是正确的?需要附上别人的 license 文件吗?
我找到一个例子: https://github.com/cmu-db/bustub/tree/master/third_party
例子中在引用的文件前进行注释:
// This source file was originally from:
// https://github.com/PeterScott/murmur3
//
// We've changed it for use with VoltDB:
// - We changed the top-level functions defined below to return
// their hash by value, rather than accept a pointer to storage
// for the result
还另外准备了一个文件versions.txt
去列出所有的引用:
........
# Library, Version, Commit Hash
# murmur3
# url: https://github.com/aappleby/smhasher.git
# branch: master
# commit hash: 61a0530f28277f2e850bfc39600ce61d02b518de
# commit hash date: 9 Jan 2018
上面这个例子中的方式自然是可以效仿的。但是例子中的引用其实是 public domain 。我想问引用声明会和被引用项目的 license 有关吗?很多项目不是 public domain,怎么去做引用声明呢?
1
Lax 2020-04-04 08:24:19 +08:00
看协议内容,GPL/MIT 都是要求包含 /展示协议文本的。其它协议没要求的话可以不展示,但是加个引用说明还是比较好的。
|
2
swulling 2020-04-04 09:47:18 +08:00 via iPhone
常见的来源协议中
BSD 都可以不用带来源协议和信息 GPL 要求感染为 GPL,最好有个文件带原始 License MIT 需要你有一个文件放原始 License Apache 需要在代码的文件头加入 License 业界常见的做法是增加一个 OPENSOURCE 文件,里面包含了所有引用的开源组件和协议,Apache 再写入每个文件头就可以了。 然后视你的程序类型,在帮助菜单,命令行参数,页面上增加显示 OPENSOURCE 内容的地方即可 |