微軟抄襲 AppGet 始末,開源普法任重道遠

2020-12-02 IT之家

近日,開源項目 AppGet 作者 Keivan Beigi 與微軟 WinGet 項目的「抄襲糾紛」事件迎來了最新進展。微軟方面做出回應,坦承「辜負了 Keivan 和 AppGet」,並肯定了 Keivan 與 AppGet 對微軟新項目的貢獻。

今年 5 月,微軟在 Build 2020 大會上發布了新的軟體包管理工具 WinGet,並將其開源。而就在 WinGet 發布之後不久,開源軟體包管理工具 AppGet 項目作者 Keivan Beigi 發文宣布 AppGet 項目「死亡」,矛頭直指微軟的 WinGet 抄襲了 AppGet 。

AppGet 是一款開源的 Windows 軟體包管理工具,它可以在 Windows PC 上自動安裝軟體。作者 Keivan Beigi 是一名居住在加拿大溫哥華的軟體工程師。去年 7 月,微軟 App 事業部產品經理 Andrew Clinick 開始主動接觸 Keivan,表達了微軟對於 AppGet 的興趣,並表示可以給 Keivan 提供在微軟的職位,共同開發 Windows 系統的軟體包管理項目。期間,Andrew 多次與 Keivan 以交換意見為由進行面試溝通,獲取了 AppGet 的開發思路。去年 12 月,Keivan 在微軟位於西雅圖的總部接受了一整天的採訪,事情本來正向著好的方向發展。

然而此後的 6 個月裡,微軟沒有再與 Keivan 聯繫。直到今年 5 月,Keivan 突然收到了一封來自微軟的郵件:「我想花點時間告訴你,我們非常感謝你的投入和見解。我們一直在構建 windows 包管理器,第一個預覽版將於明天在 Build 上線,我們的包管理器也將是開源的,我們歡迎您的任何貢獻。」隨後,微軟就在 Build 上發布了 WinGet 。

Keivan 表示,當他看到公告和 WinGet 的代碼時感到很震驚。Keivan 認為 WinGet 的核心機制、術語、manifest 格式和結構,甚至是包存儲庫的文件夾結構都有 AppGet 的影子。而微軟在公告中對於 AppGet 的描述僅有一句 「 ……還有許多其他類似 AppGet、Npackd 和基於 PowerShell 的 OneGet 包管理器。」

Keivan 對微軟的做法感到非常失望,他認為微軟抄襲他的開源軟體沒有問題,但希望自己的工作獲得適當的榮譽。為此他發表了「AppGet 之死」一文,宣布放棄 AppGet 項目的更新,因為與微軟這種量級的開發者競爭沒有任何意義。

而對於微軟面試官 Andrew 的做法,Keivan 在推特中表示:「我並不想站在 WinGet 的對立面,我也不希望任何人因這件事被解僱,我只是想分享我在這個故事中遭遇的一些不公平對待。」同時他也不想因為一些私人恩怨而毀掉一款好的產品,希望微軟方面能給出適當的答覆。

5 月 30 日,微軟產品經理 Andrew 在微軟官方發文回應稱,「去年夏天,我們與 Keivan 進行了交談,探討了共同提供 Windows Package Manager 的潛在機會。AppGet 具有許多品質,確實可以幫助我們為 WinGet 找到更好的產品方向。」 承認了 Keivan 與 AppGet 對微軟 WinGet 項目的貢獻。「Windows Package Manger 的宗旨,是提供產品讓社區和用戶都能做出貢獻並獲得認可,這就是為什麼我們要把它建立在 GitHub 上的原因;在過去的幾天裡,我們聽取了社區的意見,並從中吸取了教訓,顯然我們有負於這個目標。更確切地說,我們辜負了 Keivan 和 AppGet 。這也是我們最不願意看到的。」

Andrew 還明確列出了數個 AppGet 「幫助 WinGet 變得更好」的貢獻:

  • 在安裝過程中沒有腳本 —— 這是我們完全同意的,但不允許使用 MSIX

  • GitHub 中豐富的清單定義—— 與應用程式的豐富聲明性元數據相結合的開放能力對於實現目標非常重要

  • 支持所有類型的 Windows 應用程式安裝程序(包括 Win32/Win64)

  • 存儲庫中應用程式的無縫更新

Andrew 表示希望藉此機會表達對 Keivan 提供的 AppGet 的開發思路,以及 Keivan 與微軟合作的感謝。並希望未來能和 Keivan 以及其他開發者合作,把 WinGet 做得更好。

儘管微軟承認了 AppGet 的貢獻並表達了謝意,但仍然沒有表達對整件事情的歉意,有網友對此表達了不滿。

甚至有網友表示「這下所有事情都明朗了,微軟之所以開始向開源靠攏,是為了更方便竊取別人的勞動成果?」

其實網友的嘲諷並非心血來潮,早在 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 的更改,然後聲稱其是微軟開發的原創作品。

jamiebuilds 稱自己主動與認識的微軟員工聯繫說明此事後,對方感到震驚並道歉,但之後並沒有任何來自官方的合理解釋。Rush 項目也沒有去更改許可證,或者添加補充說明,而是將提交記錄進行了混淆,將代碼位置進行移動,並重新編寫或重命名了一些函數。

jamiebuilds 提到,如果是其他人做了這件事,他或許會有點不高興但仍然把他忽略掉。但微軟這樣一個萬億市值的軟體業巨頭做這樣的事情,這令他非常生氣。

這件事最後不了了之。值得一提的是,這一次 Lerna 的開發者並沒有選擇向微軟屈服。如今 Lerna 在 GitHub 上擁有 23k 的 Star ,成為名副其實的明星項目,以至於微軟後來在自己的項目 Just 中也把多包存儲管理工具改為使用 Lerna 。

儘管這些抄襲事件或許只是由微軟個別員工的不當做法引起,但微軟的一系列抄襲行為還是引發了開源界的擔憂。事實上,在開源社區中 fork 或 copy 某人的代碼並不是什麼壞事。但微軟這種將別人的勞動成果歸功於己的行為,顯然違反了開源社區應有的道德規範,當然也違反了開源協議。

目前,很多軟體工程師普遍對於開源協議仍然不夠了解。有人甚至認為:開源軟體就是免費的軟體,所以我可以不受限制地隨意使用。這顯然是一種誤解。

據業內律師介紹,開源軟體與專有軟體等閉源軟體一樣,都是受法律保護的。開源軟體的著作權既沒有放棄也沒有過期,作者仍然是享有著作權的。除了著作權外,開源軟體還可能被合同法、專利法、商標法等法律所規制。在著作權法的語境下,軟體代碼是類似於文字作品一樣被保護的。在獲得了一段原始碼之後,默認情況下不能對該原始碼進行改編或者再發行。而開源軟體的特點在於,對於部分寬鬆開源協議(如 MIT、Apache 2.0)來說,在使用者承諾滿足一定條件(通常包括給作者署名、附帶許可證)的情況下,作者會放棄、讓渡部分權利,例如允許使用者將代碼改編或者再發行。

律師介紹,使用者所承諾的條件以及作者所放棄的部分權利形成了一種合同關係,更具體來講是許可合同,在開源軟體的情況下該合同也就是我們常說的開源許可證(License)。許可證是一種無需磋商的、標準化的公共合同,降低了合同的成本。

理論上來說,使用 MIT、Apache 2.0 等寬鬆開源許可證的項目,原始碼可以被任何人拿去修改、分發、甚至閉源商業化,但必須保留項目原作者的著作權,也就是在原始碼引用的部分保留項目作者的版權聲明。以 MIT 許可協議為例,該協議規定,被授權人要履行 「在軟體和軟體的所有副本中都必須包含版權聲明和許可聲明」 的義務。也就是說,微軟採用開源項目原始碼開發新項目本身並沒有任何問題,但其拒絕履行開源協議規定的「保護軟體原作者著作權」的義務,事實上是違反了開源協議的。

儘管開源項目原始碼受到開源協議的保護,但個人開發者維護的開源項目在面對微軟這種級別的大型企業時,往往難以維護自己的合法權利。比較大型的開源項目通常會由專門成立的基金會來處理相關的法務問題,這些大型開源項目的版權屬於中立的開源基金會,基金會享有處理項目授權、更改開源協議的權利,能夠隨時應對項目授權問題帶來的法律糾紛。但個人開發的項目版權屬於開發者自己,面對類似的侵權行為時,顯然缺乏足夠的人力和財力去處理這些法律糾紛,在大多數情況下只能悶聲吃虧。因此,在個人開發者決定是否將自己的項目開源時,一定要衡量開源的利弊,充分理解各類開源許可證的各項條款,預測項目開源後可能帶來的後果,三思而後行。同樣的,當我們在使用開源項目的代碼時,也要尊重原作者的勞動成果,自覺履行開源協議所要求的義務。

最後,以《是誰在阻礙我們創新》中的一句話作為結尾:

「我們總是習慣去索取,而忘記了回饋。」

相關閱讀:

《微軟回應「剽竊AppGet」:肯定原作者貢獻》

相關焦點

  • 盤點微軟最應該開源的 15 款產品 - OSCHINA - 中文開源技術交流社區
    他們先是向Linux內核貢獻代碼,還開放了.NET核心、Visual Studio Code編輯器、甚至是Chakra JavaScript引擎(IE瀏覽器和Edge所用)的原始碼,而在和公司內部的開發者進行了漫長的談判之後,微軟最近又對博客工具Windows Live Writer進行了開源。可實際上,作為一家軟體巨頭,微軟還有不少產品都應該進行開源。
  • B站芋頭和豬僑怎麼了誰抄襲誰 美食視頻抄襲事件始末
    芋頭豬僑誰抄襲誰?  兩者之間的知名度來說,芋頭會更加有名氣一些,因為芋頭在抖音上面也很火,所以之前豬僑一直被指責是抄襲。但是翻看兩人之間發布的視頻狀態來看,豬僑在2016年3月份的時候能就已經發布了第一個視頻,但是芋頭是在2016年12月份發布的第一條視頻。
  • 電影寄生蟲方回應抄襲說了什麼 寄生蟲抄襲事件始末回顧
    近日,韓國電影《寄生蟲》抄襲的事情在網上炒的是沸沸揚揚,對於奧斯卡的一部黑馬獲獎作品,被指出有抄襲的行為,確實是大家大吃一驚。近日,韓國電影《寄生蟲》官方回應抄襲這件事,具體是如何回應的呢?電影《寄生蟲》講述了什麼故事呢?一起來看一下。
  • 微軟研究院開源天文望遠鏡程序WWT
    網易科技訊 1月9日消息,據國外媒體報導,微軟研究院日前將自家的全球望遠鏡網絡計算程序
  • GitHub 的 App 會開源嗎?
    開源是現在的一個大趨勢,雖然有很多軟體確實是不需要開源的,但作為全球最大的開源軟體平臺,自己的產品不應該開源麼?當今很多開源項目的開發都是在 GitHub 上或者通過 GitHub 進行的。對於這一開發者用來「吃飯」的工具,改善 GitHub App 的使用體驗能有效的改善開發者的工作效率和方式,所以如果該項目真的開源,一定會吸引很多開發者參與其中。
  • 國產開源軟體紅旗2000公司老總被指因抄襲免職
    曾高舉國產軟體旗幟的反微軟旗手紅旗2000公司,近日卻因「假國產」被擋在了「核高基」項目門外,與國家財政資助無緣。
  • CopyCat 代碼克隆檢測發布,劍指開源軟體抄襲
    運營開源中國社區 10 年時間,對國內開源發展之迅猛非常的欣慰,但同時也存在很多問題是我們難以忽視的。其中一個對開源生態發展殺傷力最強的就是 —— 抄襲問題!
  • 微軟開源天文望遠鏡項目,一起去看星星眨眼
    >WorldWide Telescope 界面   今年一月,微軟首次公開了打算開源這個項目的打算,在 6 個月後,昨天,微軟正式宣布,這個項目的代碼已經逐漸放到了開源社區 Github 上,任何有興趣的人都可以下載使用,在這個基礎上做自己的改進。
  • 微軟宣布WPF、Windows Forms和WinUI這3個流行框架正式開源
    微軟高管在12月5日的Microsoft Connect();2018年的活動上興奮地宣布新的開源計劃。這表明,微軟3個最流行的Windows框架正在迎來開源。為何開源?雷鋒網(公眾號:雷鋒網)查詢微軟.NET Blog了解到,2014年11月12日,微軟正式宣布了.NET Core的開源。它取得了巨大的成功。.NET平臺已經收到來自微軟以外的3700多家公司的超過60000個社區的拉取請求。微軟在現場承諾,將在.NET Core上為這些框架做出貢獻。第一波代碼將於今天在GitHub上發布,未來幾個月將出現更多代碼。
  • 退休失敗,64歲Python之父決定加入微軟,將開源進行到底!
    Guido van Rossum 發推表示,在微軟他有很多選擇,「這裡有大量的開源項目」, 他將致力於「確保更好地使用Python(而不僅僅是在Windows上)」。 網友紛紛表示祝賀,並非常期待!
  • 張堯學否認自然科學一等獎涉嫌抄襲 方舟子稱其盜用開源軟體
    2015年2月4日,2日中午,網名為kranesun的it工程師在知名開原始碼軟體(由散布在全世界的編程者隊伍所開發,其源碼可以被公眾使用的軟體)平臺github貼出中國工程院院士、清華大學教授、中南大學校長張堯學的照片,並發帖稱張及其科研團隊的上述獲獎項目實為「遠程桌面項目」(remote-desktop-client),且涉嫌抄襲國外it工程師上傳的開原始碼軟體
  • 復旦大學「抄襲門」事件始末
    」事件始末  2007年12月24日,復旦大學學術規範委員會在校園網上掛出「2007年第1號」通告,向全校師生通報對三起學術剽竊事件的調查審議結論與處理建議,引發強烈反響,復旦被認為有勇氣「自揭家醜」。
  • 真·黑科技:原來微軟是這樣把 Hololens 的全息交互畫面拍攝出來的...
    所以,視頻中的一切都是由下圖中微軟這臺特殊、複雜而又神秘的攝像機呈現出來的。experience)開發的、專門用於支持 Spectator View 的 app;一位佩戴著 Hololens 眼鏡使用該 app 的用戶;一臺能夠拍攝第三人稱視角的 Spectator View 成套器械;一臺桌面 PC,要求能夠運行上述 app,並能夠將全息圖(Hologram)轉化成旁觀者視角的視頻。
  • 今日頭條蓄謀已久的飛聊社交app剛上線,結果就被網友們定義抄襲
    儘管它遭遇了「社交大佬」微信的緊急封殺,可是對於擁有宇宙條(字節跳動)公司基因的社交app「飛聊」來說,它已經通過微信朋友圈的短暫「亮劍」就成功達到了以下幾個戰略目的:其一,通過這款「飛聊」社交app在微信朋友圈的短暫傳播,已經成功在微信用戶身上留下了社交基因;其二,主打「黃金甲」
  • 餓了麼公司前端團隊開源前端基於 Vue的桌面端組件庫-Element
    由餓了麼公司前端團隊開源。開源版本持續更新至2.3.2版;設計原則一致性 Consistency與現實生活一致:與現實生活的流程、邏輯保持一致,遵循用戶習慣的語言和概念;在界面中一致:所有的元素和結構需保持一致,比如:設計樣式、圖標和文本、元素的位置等。
  • 微軟亞洲研究院發布「微礦Qlib」:AI量化投資開源平臺
    【環球網科技綜合報導】12月11日報導,近日,微軟亞洲研究院正式發布了業內首個 AI 量化投資開源平臺「微礦 Qlib」。據了解,與傳統量化投資工具不同,Qlib 涵蓋了量化投資的全過程,而且從底層構造開始就專為 AI 而打造。
  • H5開發app用什麼框架
    H5開發app經常用到的框架有:jquery mobile框架,bootstrap框架,ionic框架,Mobile Angular UI框架以及Sencha Touch框架等等。Bootstrap一經推出後頗受歡迎,一直是GitHub上的熱門開源項目,包括NASA的MSNBC(微軟全國廣播公司)的Breaking News都使用了該項目。 國內一些移動開發者較為熟悉的框架,如WeX5前端開源框架等,也是基於Bootstrap源碼進行性能優化而來。
  • 「輕量級的」Istio,微軟開源了一個基於 Envoy 的服務網格
    微軟宣布了一個新的開源項目,即「開放服務網格(Open Service Mesh,OSM)」。它是一種在 Kubernetes 上運行的輕量級且可擴展的服務網格;旨在作為 Service Mesh Interface(SMI)規範的參考實現。
  • 張堯學回應抄襲:「透明桌面」與「透明計算」系兩個項目
    而近日又被質疑「涉嫌抄襲開源軟體」將「國家自然科學一等獎」再次推向輿論浪尖。對此,中南大學校長張堯學接受了中國網記者的專訪,以下為專訪實錄:質疑項目為「透明桌面」,與「透明計算」是兩個項目中國網:您對「涉嫌抄襲開源軟體」的質疑有何回應?
  • 被指抄襲谷歌的紅芯瀏覽器再發聲:基於Chromium開源架構 仍稱有創新
    被指抄襲谷歌的紅芯瀏覽器再發聲:基於Chromium開源架構 仍稱有創新 每日經濟新聞 2018