写点什么

开源的国界:维护者引用当地法律拒绝合并代码

  • 2020-09-07
  • 本文字数:1462 字

    阅读完需:约 5 分钟

开源的国界:维护者引用当地法律拒绝合并代码

开源社区已经被进一步分裂?


最近,一位非常有才华的开发者,在 GitHub 上发现了一个不错的开源 Laravel 项目。该项目主要用于生成文件的下载链接,但还差一个比较重要的功能:为特定用户分配 DownloadLink。出于对开源做贡献的心理,他完成了这部分代码,并向项目维护者提了 PR 请求。项目维护者也很快给了反应,甚至还在他的基础上添加了更多代码以及功能测试。


只是一段时间后,他意外的发现 PR 并没有被合并,对此,项目维护者是这样回复他的:


嗨,谢谢你的好主意。很抱歉的告诉你,因为我国法律有所规定,不允许和以色列的人有所关联,所以我无法合并代码。希望你能理解…


他这才发现该项目维护者来自伊朗,而他本人的 GitHub 上的个人资料显示来自以色列耶路撒冷。他形容自己“很震惊,很受伤”,毕竟这个项目不涉及到加密,也不属于军事或核相关软件项目。


至于关于该代码到底该不该合并,HackerNews 和 Reddit 上的开发者分别发表了上千条评论,态度明显的分成了两派。


其中一位曾在 Facebook 任职的伊朗开发者在 GitHub 上直接说道:“合并就完了!”



而另一派,有人反驳他说:“你让他合并完就去坐牢吗?”



“维护者因其国家/地区的法律问题,无法合并代码,这也是生活在制裁之下的人们的艰辛。如果被指控犯有叛国罪,那么他很有可能会在监狱中度过一生。”


“这跟谷歌和华为的事情类似,按照法律,谷歌也不能合并来自华为提交的开源代码。“


而且很显然这个问题目前还没有解决办法,开源 Laravel 软件包作者也只能将该 Repo 关闭,不让大家继续在 GitHub 上发表评论。


至于合并不了,网友认为 GitHub 也有推脱不掉的责任。


目前很多大公司都有“合规官”职位,负责确保公司遵守所有适用法律。看来 GitHub 也不例外,很有可能存在“合规工程师”,负责编写系统以检查用户是否符合特定条件,并会标记特殊用户。并且估计这种审查制度也一直会存在,直到到 GitHub(Microsoft)的管理层找到适当的方式,可以解决此问题为止。


在 GitHub 上,出于政治原因封禁开发者账户,从而影响开源的事情由来已久。


2019 年 7 月,一位伊朗开发者的 GitHub 账号被禁,他在社交媒体上分享了自己的经历,并向 GitHub 官方发起质询。最后他得知是因为自己的所在地伊朗受到美国制裁,整个伊朗地区的 GitHub 账号均无法使用。当时 GitHub 在没有任何事先通知的情况下屏蔽了所有伊朗账户,连让该地区开发者下载备份数据的机会都没有。


今年 3 月,GitHub 再次封禁了一个属于微软的前端开源项目 Aurelia,理由是项目中有两名来自伊朗的外部贡献者。而且每次这种封禁都会被顶到 HackerNews 头版,只是这次 Aurelia 的运气比较好,他们得到了 GitHub 首席执行官的致歉表示:“这次的确是个错误”。


对此,GitHub 最初的指导方针是:


“根据 GitHub 的服务条款,用户只能按照适用法律访问和使用 GitHub.com,包括美国出口管制和制裁法律。”

“GitHub Enterprise Server 不得出售、出口或再出口到清单中的国家,目前清单中已经包含古巴、伊朗、朝鲜、苏丹与叙利亚。”


发展到现在,这个分裂开源的举动,很显然再次蔓延了下去:伊朗的项目维护者开始抵触来自以色列的开源贡献…


开源精神最重要的是:自由贡献、自由分叉、自由使用,通过大量来自世界各地,可以完全不相识的程序员,无直接经济回报地贡献代码,在无组织结构的前提下完成高效的协作和生产。开源本应是无边界、无国界的,不会因为开发者所处的公司、所处的国家而产生不同的态度。虽然“开源”被我们给予了非常美好的期许,但现实只会更复杂。我们只有建立自己的软件生态,拥有自己独立的系统,才能应对最坏的可能。


2020-09-07 13:561716

评论

发布
暂无评论
发现更多内容

【中级—(1),flutter面试题

android 程序员 移动开发

创新赋能助力品牌崛起 恒洁开启品质卫浴新未来

【性能优化实战】都知道小程序FMP优化实录,android音视频开发何俊林

android 程序员 移动开发

【中级—,一线互联网架构师设计思想解读开源框架

android 程序员 移动开发

Microchip推出面向家用电器市场的电容式触摸屏控制器系列产品

阿里云EMAS发布套餐订阅云服务

移动研发平台EMAS

【Flutter 专题】117 图解 Dismissible 滑动清除 Widget(1)

android 程序员 移动开发

【Flutter 专题】120 Flutter & 腾讯移动通讯 TPNS,腾讯Android面试

android 程序员 移动开发

【Flutter 专题】126 图解自定义两侧对齐 ACETabBar 标签导航栏

android 程序员 移动开发

【Java转Android】29,真的已经讲烂了

android 程序员 移动开发

【Java转Android】58,讲的太清楚了

android 程序员 移动开发

【干货篇】Android各版本拦截进程对AMS的请求实战,移动互联网开发技术就业前景

android 程序员 移动开发

【Android高级架构师系统学习文章】Android基础-Activity全方位解析

android 程序员 移动开发

【包学包会】从一次请求开始,android蓝牙开发视频

android 程序员 移动开发

【干货】2021Android高级开发面试宝典以及答案整理1,透彻分析源码

android 程序员 移动开发

【干货】Android BAT高级面试必问36题以及算法合集,android视频开发框架

android 程序员 移动开发

学会会声会影,轻松成为视频剪辑达人

懒得勤快

【 FlutterUnit 食用指南】 开源篇,Android自定义View详解

android 程序员 移动开发

【- Flutter 桌面篇 -】 FlutterUnit win版闪亮登场,android入门基础

android 程序员 移动开发

【Jetpack篇】协程,腾讯T3团队整理

android 程序员 移动开发

【View系列】View事件分发源码探索,android高级开发实战

android 程序员 移动开发

【开发12年码农教你】Android端简单易用的SPI框架-,写给程序员的Flutter详细教程

android 程序员 移动开发

【 Flutter 手势探索】我的第二本小册来了,嵌入式音视频方向

android 程序员 移动开发

【Java转Android】33,高级Android开发面试解答之线程篇

android 程序员 移动开发

浪潮云说 | “缓”而不慢,内存数据库Redis

云计算

【AAC 系列三】深入理解架构组件,androidjetpack视频

android 程序员 移动开发

【Flutter 专题】117 图解 Dismissible 滑动清除 Widget

android 程序员 移动开发

【Flutter桌面篇】Flutter&Windows应用尝鲜,flutter框架缺点

android 程序员 移动开发

【Kotlin篇】多方位处理协程的异常,Android高级工程师进阶学习—Android热修复原理

android 程序员 移动开发

Java程序员必备的辅助开发神器(2022年版),建议收藏

Tom弹架构

Java 开发工具

极光笔记丨数据质量建设实践

极光GPTBots-极光推送

大数据 数据质量 数据质量指标

开源的国界:维护者引用当地法律拒绝合并代码_编程语言_Tina_InfoQ精选文章