程序员BUGTB|微软上个月才开源的WinGet竟是抄袭来的?( 二 )


支持所有类型的 Windows 应用程序安装程序(包括 Win32/Win64)
存储库中应用程序的无缝更新
Andrew 表示希望借此机会表达对 Keivan 提供的 AppGet 的开发思路 , 以及 Keivan 与微软合作的感谢 。 并希望未来能和 Keivan 以及其他开发者合作 , 把 WinGet 做得更好 。
【程序员BUGTB|微软上个月才开源的WinGet竟是抄袭来的?】
尽管微软承认了 AppGet 的贡献并表达了谢意 , 但仍然没有表达对整件事情的歉意 , 有网友对此表达了不满 。

程序员BUGTB|微软上个月才开源的WinGet竟是抄袭来的?
本文插图

甚至有网友表示“这下所有事情都明朗了 , 微软之所以开始向开源靠拢 , 是为了更方便窃取别人的劳动成果?”
其实网友的嘲讽并非心血来潮 , 早在 2018 年 6 月 , 微软就曝出过类似的抄袭事件 。 当时 , 开源的多包存储库管理工具 Lerna 作者 jamiebuilds 指责微软抄袭其代码 。
jamiebuilds 表示 , 当自己在为 Babel 6 工作的过程中发现所有东西都拆分成漂亮的小插件包 , 但同时也就需要管理数十个软件包 。 因此 , 多包存储库管理工具 Lerna.js 应运而生 。
为让项目更好用 , 他对项目进行了 5 次重写 , 试图让架构更完善 。 之后某天 , jamiebuilds 发现了微软推出了由许多小包组成的新的设计体系 , 本以为是微软在项目中使用了 Lerna, 结果发现他们使用的是一个名为 “Rush” 的东西 。
Rush 或许是微软在 Lerna 的基础上开发的一个分支?抱着这样的想法 , jamiebuilds 进一步查看了 Rush 的 Git 日志 , 结果发现该项目是在 Lerna 创建几天之后创建的 , 同时在文档中介绍了包括 Lerna 在内的其他类似工具 , 并称之为“不够好的产品” , 俨然一副 “Rush 是比这些产品都要好的原创工具”的样子 。
为了解二者的区别 , jamiebuilds 对两个项目进行了对比 , 结果发现 Rush 的文件和目录命名、核心功能的代码都与 Lerna 完全相同 , 甚至连提交记录都是一致的 , 也就是说 Rush 在不断复制 Lerna 的更改 , 然后声称其是微软开发的原创作品 。
程序员BUGTB|微软上个月才开源的WinGet竟是抄袭来的?
本文插图

jamiebuilds 称自己主动与认识的微软员工联系说明此事后 , 对方感到震惊并道歉 , 但之后并没有任何来自官方的合理解释 。 Rush 项目也没有去更改许可证 , 或者添加补充说明 , 而是将提交记录进行了混淆 , 将代码位置进行移动 , 并重新编写或重命名了一些函数 。
jamiebuilds 提到 , 如果是其他人做了这件事 , 他或许会有点不高兴但仍然把他忽略掉 。 但微软这样一个万亿市值的软件业巨头做这样的事情 , 这令他非常生气 。
这件事最后不了了之 。 值得一提的是 , 这一次 Lerna 的开发者并没有选择向微软屈服 。 如今 Lerna 在 GitHub 上拥有 23k 的 Star, 成为名副其实的明星项目 , 以至于微软后来在自己的项目 Just 中也把多包存储管理工具改为使用 Lerna。
尽管这些抄袭事件或许只是由微软个别员工的不当做法引起 , 但微软的一系列抄袭行为还是引发了开源界的担忧 。 事实上 , 在开源社区中 fork 或 copy 某人的代码并不是什么坏事 。 但微软这种将别人的劳动成果归功于己的行为 , 显然违反了开源社区应有的道德规范 , 当然也违反了开源协议 。
目前 , 很多软件工程师普遍对于开源协议仍然不够了解 。 有人甚至认为:开源软件就是免费的软件 , 所以我可以不受限制地随意使用 。 这显然是一种误解 。
据业内律师介绍 , 开源软件与专有软件等闭源软件一样 , 都是受法律保护的 。 开源软件的著作权既没有放弃也没有过期 , 作者仍然是享有著作权的 。 除了著作权外 , 开源软件还可能被合同法、专利法、商标法等法律所规制 。 在著作权法的语境下 , 软件代码是类似于文字作品一样被保护的 。 在获得了一段源代码之后 , 默认情况下不能对该源代码进行改编或者再发行 。 而开源软件的特点在于 , 对于部分宽松开源协议(如 MIT、Apache 2.0)来说 , 在使用者承诺满足一定条件(通常包括给作者署名、附带许可证)的情况下 , 作者会放弃、让渡部分权利 , 例如允许使用者将代码改编或者再发行 。


推荐阅读