写点什么

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

  • 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:561383

评论

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

工厂里三个质检车间缩减为一个,飞桨企业版EasyDL助力降本增效

百度大脑

飞桨

理解IM消息“可靠性”和“一致性”问题,以及解决方案探讨

JackJiang

即时通讯 IM 可靠消息最终一致

Java--JVM内存结构

是老郭啊

Java JVM简介 JVM内存结构 JVM运行时数据区

C语言从入门到精通(三)

代码情缘

编程 开发 C语言 编程之路 硬件开发

C语言从入门到精通(四)

代码情缘

编程 C语言 变量 编程之路 6月日更

C语言从入门到精通(二)

代码情缘

开发 C语言 编程、

应用,才是区块链的终极归宿

CECBC

Bzz节点分币系统搭建,Bzz矿机挖矿系统

架构训练营模块 5 作业 - 江哲

江哲

手滑党福音,意外删除重要文件怎么办?

淋雨

数据恢复 EasyRecovery 文件恢复

5分钟速读之Rust权威指南(十八)

wzx

rust 范型 trait

从事开发5年以上的Java程序员,面试会被问到哪些?

Java架构师迁哥

Python——注释和字符串的拼接

在即

6月日更

区块链+数字政务:成都高新区如何创新

CECBC

如何使用Tauri和Ember.js创建小型、快速和酷的桌面应用程序

代码先生

tauri ember.js desktop程序

【Redis】概览

awen

redis

2021全球人工智能技术大会开幕 百度王海峰:跨语言沟通正在成为现实

百度大脑

人工智能 沟通 跨语言

区块链能否为应对气候变化 提供解决方案?

CECBC

Sprint Review != Demo——《Scrum指南》重读有感(4)

Bruce Talk

Scrum 敏捷 随笔 Agile

备战金九银十,2021年最全999道Java岗高频面试题分享

Java架构师迁哥

程序员必知的硬核基础知识

Java架构师迁哥

轮胎行业遇上AI,百度智能云携手固铂轮胎智能化转型

百度大脑

智能云 轮胎

Redis 缓存的三大问题及其解决方案

xcbeyond

redis 缓存 6月日更

整数划分问题(详解 n > m 情况)

若尘

数据结构 6月日更

网络攻防学习笔记 Day38

穿过生命散发芬芳

网络攻防 6月日更

这个 “少年黑客”,用黑科技守护独居老人

阿里云CloudImagine

阿里云 计算机视觉 音视频 养老

平衡计分卡- 战略落地的工具

石云升

创业 战略 职场经验 6月日更

C语言从入门到精通(一)

代码情缘

c++ 编程 开发 C语言 硬件开发

JavaScript 代码逻辑判断的优化

编程三昧

JavaScript 大前端 代码质量 代码优化 编程思想

Java中String类的前世今生

卢卡多多

Java string 6月日更

新思科技连续五年获Gartner魔力象限应用安全测试领导者殊荣

InfoQ_434670063458

新思科技 Gartner 魔力象限

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