GitHub 斷供危機來了!權威解讀程序員應對指南 | CSDN 獨家
作者 | 郭芮&伍杏玲
出品 | CSDN(ID:CSDNnews)
GitHub 斷供危機還是來了。
美國貿易限制的影響正在逐漸擴大,並且毫無意外地蔓延到了開發者社區。據多家外媒報道,世界上最大的源代碼主機 GitHub 正在阻止伊朗、敘利亞、克里米亞和其他受制裁國家的用戶正常服務,託管在 GitHub 上的私有倉庫代碼也無法訪問!
更過分的是,GitHub 的這一波制裁毫無徵兆,沒有任何提前通知。
毫無預兆,GitHub 說斷就斷!
根據外媒 ZDNet 的報道,來自伊朗、克里米亞等地的工程師發現,自己的 GitHub 賬戶突然無法正常使用,有些人的個人頁面甚至被 404。
居住在克里米亞的 21 歲俄羅斯公民 Anatoliy Kashkin,其 GitHub 賬戶就受到了突如其來的限制,他還在 Hacker News 的帖子中(https://news.ycombinator.com/item?id=20531039)透露,與其在同一地區的其他開發者也同樣被限制了。
總部設在伊朗的開發人員 Hamed Saeedi 在 Medium 上傳達了對 GitHub 的抗議(https://medium.com/@hamed/github-blocked-my-account-and-they-think-im-developing-nuclear-weapons-e7e1fe62cb74):「GitHub 封鎖了我的帳戶,他們難道認為我在開發核武器嗎?!」
他介紹說自 2012 年以來自己一直在使用 GitHub,但是卻在沒有任何預先通知的情況下賬號被阻止,更沒給他機會去備份他的那些數據。他最近收到了 GitHub 發送的關於貿易控制的電子郵件:「由於美國的貿易管制法律限制,你的 GitHub 賬戶受到限制。如果是是個人帳戶,你可能只能訪問免費的 GitHub 公共存儲庫服務。」他還說,GitHub 阻止了所有的伊朗賬戶。
Hamed 還在 GitHub 上創建了一個名為「github-do-not-ban-us」的項目(https://github.com/1995parham/github-do-not-ban-us),要求 GitHub 就此事進行道歉並修改限制措施。這一項目立即引來了大量開發者的注意,目前已經獲得了七千多的標星,還登上了 GitHub 熱榜第一。在 Issues 中,來自世界各地的開發者都給出了支持。
CEO:GitHub受美國出口管理條例管制
樁樁報道都在透露出此次限制的突然,開發者社區被「殺」得措手不及。經過幾天的事件發酵之後,GitHub CEO Nat Friedman 終於在 Twitter 上給出了正面回應,但其字裡行間中卻充滿了「無奈」之意。
Nat Friedman 在推文中解釋了這背後的原因。「畢竟 GitHub 是一家註冊在美國、在美國開展業務的公司」,「GitHub 受到美國出口管理條例的管制,就像任何在美國開展業務的公司一樣。」
他同時表示,開源 repo 不受影響。「為了遵守美國的制裁,我們不得不對伊朗、敘利亞和克里米亞的私人 repo 和付費賬戶實施限制」,但是「公開 repo 依然能被所有開發人員訪問,開源的 repo 不會受到影響」。
他還解釋了此番限制主要基於用戶所在地,而非國籍。如果某人被錯誤標記,只要填寫相應表格,賬戶就會在數小時內獲得解禁。對於沒有提前通知這一點,他則回應「法律不允許我們將限制事宜提前通知任何人。」
最後,Nat Friedman 還深情表示,「這並非我們的本意」。
但很顯然用戶們並不買賬,越來越多的質疑聲攪得人心惶惶,開源究竟是否還有自由可言?
對此,CSDN(ID:CSDNnews)專訪鈞理知識產權事務所、開源社法律諮詢委員會顧問林誠夏和中國開源軟體推進聯盟副主席兼秘書長劉澎,為我們解疑釋惑。
林誠夏:開源部分不受出口管制,
沒開源的會受管制
林誠夏表示,我們要釐清 GitHub 上有所謂的公眾庫及私有庫,他們在美國出口管制規則的評定是完全不同的。
Public Repository(編者註:公共庫)意指代碼已開源,就算是該地區已被出口封鎖,原則上也不在管制效力之內。因為一旦開源,就意味是已經散布全球,不能形成再次出口,所以也不在出口管制的主要範圍內。
但是 Private Repository (編者註:私有庫)不同,它的源代碼是限定原程序員或其認可的會員才可以接觸(access),所以一旦某個地區被出口管制限定,那個地區的人原則上就不能接觸這些私有庫,否則會形成出口管制的漏洞。
所以有一個重點大家應該要正確認知到,RedHat 是主力用開源軟體來做商業服務的公司,但RedHat 並非所有商業服務都是由開源許可證提供,所以綜合服務時,RedHat 必須額外符合出口管制的相關規則,因為它發布或提供服務的,不限於開源軟體。
和它相似的 GitHub 協助很多巨型的開源軟體項目做開發,所以對於已經公開開源的部份,原則上不在美國出口管制的效力範圍,除非涉及加解密。但沒有公開開源,而是私有庫的部份,就肯定會在美國出口管制的影響範圍里。
所以林誠夏認為此次事件標明並不是開源受到美國出口管制,而是沒有開源的部份就一定受美國出口管制影響。
延伸來說,國內如果自己要做代碼託管,其實是沒問題的,開源軟體依其許可證,本來就可以分枝、分流(forking),也應該鼓勵分流。但重點是實際的開發網站,必須要能群聚最多社區成員的貢獻,這樣的發展才會是正向的。
但據伊朗工程師的說法,自己一覺醒來,突然收到一封 GitHub 的郵件告知他的賬戶將受到限制。他的個人頁面被禁止,共有開源庫也不能訪問,備份相關資源與代碼都來不及,更無法導出代碼。
這種情況下,GitHub 沒有提前通知正在使用的工程師,這樣的操作是否合法?是否需要賠償由於無法訪問可能給工程師造成的損失?
林誠夏認為,如果 GitHub 是收到美國商務部工業和安全局(BIS)的指示,或是依 BIS 發布的公告來執行的,那 GitHub 並沒有違反它與使用會員之間的會員條款,因為它必須遵守 EAR,這是一開始就寫在網站的使用規則里。但反之,則於理有虧。
如果伊朗工程師有實際損失,他可以向 GitHub 提出申訴,甚至透過訴訟來進行維權,不過那比較曠日費時,所以除非相關的代碼庫,他本人真的沒有做本地備份,不然一般不會走這個途徑。而且一般程序員對 Git 的操作,很少真的會完全將代碼備份在雲端,而沒有本地存儲,所以除非該名工程師舉證他的代碼真的因為管制而完全失去所有副本,不然損害賠償較難成立。
所以GitHub是否合法,必須要看它是不是能做出合法的解釋。工程師若有損失也可以訴請賠償,只是那個途徑曠日費時。
劉澎:對中國程序員而言,
GitHub 的開源形勢良好
劉澎表示,本次事件僅發生在 GitHub 官網列表中管制的幾個國家,目前對中國程序員來說,GitHub 的開源形勢還是很好,問題不算嚴峻,但同時我們要做一些準備。
劉澎分別從三個方面來解釋為什麼中國程序員不必過於擔憂:
一、無論從數量還是質量上,中國程序員已是 GitHub 重要的用戶之一。
據劉澎介紹,目前 GitHub 用戶已經超過 3600 萬,其中 80% 的程序員是來自於美國以外的地區。且頂級程序員主要分布在十個城市裡,其中美國的舊金山、灣區有四萬位,紐約有 36000 為,北京也有 36000 位,上海有 3 萬位。這樣看來,在十個優秀程序員分布的城市裡,中國佔據兩個,且人數眾多。
我們還看到在過去的幾年裡,中國程序員在 GitHub 的註冊數幾乎以每年翻一倍的速度在增長。目前國內 15 個較活躍的開源資料庫,例如華為的 GaussDB、阿里 OceanDB、Apache 麒麟 DB 等大部分均在 GitHub 上開源,這說明 GitHub 對於中國程序員來說是非常重要。
雖然在全球範圍內,排名前十個項目基本上都由微軟、谷歌等美國公司提供,但整體上看, GitHub 依舊是全球開源程序員的一個重要家園。
二、Git 技術簡單、輕巧,很容易複製和遷移。
劉澎介紹道,Linux 之父 Linus 創造的 Git 技術,是一種有效、簡單、容易複製的技術,目前使用這個技術做代碼倉庫較好的有 GitHub、GitLab、Gitea 等。
所以假如要極端地打個比方:如果美國有嚴重割裂開源文化的行為,就等於自毀長城,因為 Git 技術原理簡單,很容易開發類似的託管系統。
他強調,這個情況不大容易發生,不然這代表國際開源環境洗牌了,畢竟在 GitHub 上有 80% 的非美國程序員。
對於備份問題,他表示一般中國程序員除了將代碼放在 GitHub 上,在本地還有一個鏡像,作為本地的備份。
三、經歷此事,中國開源軟體推進聯盟對開源軟體的評價指標可能會做出改變。
目前中國開源軟體推進聯盟從四個維度來評價開源軟體:
1.知識產權(開源許可證、軟體專利);
2.開源組織體系(指導委員會、項目領隊、代碼守護人、代碼審核員、代碼貢獻者、超級用戶);
3.開源代碼的質量(Star 點贊、Fork 複製分枝、下載量,關鍵問題修復);
4.商業模式。
例如代碼的質量是基於 GitHub 的數據來評定,但此次事件發生後,他們可能會增加一個評價點:託管模式,即是否有多平台託管。
最後劉澎提出自己的擔憂:假如中國開源開發者因為此事,對 GitHub 有所顧慮導致不敢託管代碼的話,這將不利於軟體開源的發展。
對此,你怎麼看?歡迎在文末留言。
【END】


※Python 爬蟲面試題 170 道:2019 版
※Go 能拯救已經失敗的可視化編程?
TAG:CSDN |