写点什么

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

2020 年 9 月 07 日

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

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


最近,一位非常有才华的开发者,在 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 年 9 月 07 日 13:56868

评论

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

网络攻防学习笔记 Day20

穿过生命散发芬芳

5月日更 网络攻防

初探图像二值化

CagyJ

算法 CV OpenCV 图像处理

Rust从0到1-错误处理-Result

rust Error 可恢复错误 result

211本硕如何通过字节跳动、百度、美团Android面试?复习指南

欢喜学安卓

android 程序员 面试 移动开发

MemVerge认为PB级内存池将随CXL而来

Steven Xu

内存 存储 高性能服务器

520特辑丨码神VS爱神:盘点程序员的四大男友力,你偏爱哪一种?

华为云开发者社区

程序员 代码 520 男朋友 男友力

网易云课堂 Service Worker 运用与实践

有道技术团队

Service Worker

商业落地页端到端性能优化实践

百度Geek说

前端

写给丫头

小天同学

情人节 5月日更 520单身福利 情书 告白

Flutter开发:Warning:CocoaPods minimum required version 1.6.0 or greater not installed…的解决方法

三掌柜

5月日更

华云大咖说 | 华云超融合在论文期刊行业的应用实践

华云数据

「520告白」考“Adobe国际认证”被说浪费时间,你搞清目的了吗?

Adobe国际认证

一文掌握 Java8 的 Optional 的 6 种操作

看山

Java

低代码“骗局”

ES_her0

5月日更

Python 多线程 VS 多进程(二)

若尘

多线程 多进程 Python编程 5月日更

CEO观点 | 核心开放:企业拥抱开源的成功之道

极狐GitLab

开源 DevOps 安全 高效 协同办公

iPhone如何拍摄惊人的照片

懒得勤快

省钱、省时、省力的音视频通信服务

anyRTC开发者

音视频 WebRTC 云服务 RTC

利用Go开发web即时聊天系统

Elena

音视频

《Spring 手撸专栏》第 2 章:小试牛刀(让新手能懂),实现一个简单的Bean容器

小傅哥

Java spring 小傅哥 hashmap Bean容器

想知道太空猫公链发展得怎样了?看完这六个问题,你就知道了!

北熊说链

太空猫公链

350道Android面试真题分享,大厂直通车!

欢喜学安卓

android 程序员 面试 移动开发

Go sync.Pool 浅析

HHFCodeRv

go

【LeetCode】前K个高频单词Java题解

HQ数字卡

算法 LeetCode 5月日更

Patract走进Substrate Seminar,介绍Wasm合约工具套件

Patract

智能合约 rust polkadot Patract Wasm

公安合成作战指挥平台建设解决方案,情报信息分析系统开发

WX13823153201

面向服务体系结构的领域驱动设计

信码由缰

DDD

消息中间件那点事儿

Damon

消息中间件 5月日更

有了这三个神器工具集,应用开发想怎么玩就怎么玩

华为云开发者社区

开发者 华为云 应用开发 工具集 APIExplorer

Nginx高并发调优中常被忽略的参数

运维研习社

运维 Nginx PHP-FPM 并发 性能调优 5月日更

马丁量化策略交易系统开发app,现货量化交易平台搭建

WX13823153201

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