OpenCV 擬更改受權協議,從 BSD 變動爲 Apache License 2

OpenCV

技術編輯:徐九丨發自 思否辦公室linux


2020 年 5 月 22 日,OpenCV 技術委員會在一次會議中提出,擬將受權協議從 BSD 協議改成 Apache License 2 協議。和 BSD 相比,Apache License 2 是一個更規範和更詳細的開源協議。算法

更改協議爲哪般?

對於開源受權協議的定義,咱們能夠參考百度百科詞條:segmentfault

自由軟件/開源軟件是自由的,免費的,源代碼開放的,咱們可自由下載安裝和使用。同時,爲了維護做者和貢獻者的合法權利,保證這些軟件不被一些商業機構或我的竊取,影響軟件的發展,開源社區開發出了各類的開源許可協議。

開源許可協議有不少種,OpenCV 如今採用的是 BSD 協議。併發

BSD 許可協議原先是用在加州大學柏克利分校發表的各個 4.4BSD/4.4BSD-Lite 版本上面(BSD 是 Berkly Software Distribution 的簡寫)的,後來也就逐漸沿用下來。1979 年加州大學伯克利分校發佈了 BSD Unix,被稱爲開放源代碼的先驅,BSD 許可證就是隨着 BSD Unix 發展起來的。BSD 許可證一度也被 Apache 和 BSD 操做系統等開源軟件所採納。spa

但這是一個只有三條簡單條款的「簡陋」協議,在某些狀況下沒法有效的保護用戶。對此,OpenCV 舉了一個例子來講明:操作系統

某名爲「發明」的公司爲某算法申請了專利,並發表了論文。因算法效果優秀,某 CV 愛好者依論文編寫了代碼,並以 BSD 協議將代碼提交到 OpenCV。這個過程當中沒人知道算法已申請專利,隱患便被埋下。

另外一名爲「發財」的公司將 OpenCV 中的這個算法應用到其產品中。依照現有 BSD 協議,此公司能夠商業銷售產品,只需註明產品使用了OpenCV,而無需對用戶開源。開放源代碼

「發明」發現「發財」使用了其專利技術,遂起訴「發財」要求賠償和中止侵權,並順帶起訴或要求開源社區中止侵權。一旦發生這樣的案例,「發財」確定要破財。開源軟件聲譽也會受到負面影響。設計

爲了不發生相似的狀況,OpenCV 技術委員會才決定將 BSD 協議改成 Apache License 2 協議。blog

該協議和 BSD 相似,一樣鼓勵代碼共享和尊重原做者的著做權,一樣容許代碼修改,再發布(做爲開源或商業軟件)。但 Apache License 2 更規範也更詳細:開發

  1. 須要給代碼的用戶一份 Apache Licence
  2. 若是你修改了代碼,須要在被修改的文件中說明。
  3. 在延伸的代碼中(修改和有源代碼衍生的代碼中)須要帶有原來代碼中的協議,商標,專利聲明和其餘原來做者規定須要包含的說明。
  4. 若是再發布的產品中包含一個 Notice 文件,則在 Notice 文件中須要帶有 Apache Licence。你能夠在 Notice 中增長本身的許可,但不能夠表現爲對 Apache Licence 構成更改。

其第三條「Grant of Patent License」明確規定了專利全部人經過代碼向使用者進行「永久性的,全球性的,非排他性的,免費的,免版稅的,不可撤銷的」受權。也就是說,專利全部人贊成永久受權,不可再起訴用戶侵權。

目前 OpenCV 核心團隊正在討論更換協議的詳細步驟。

常見的開源協議

開源軟件的許可證都是基於開源許可協議的,常見的開源許可協議除了咱們上文中提到的 BSD 和 Apache 以外,還有 GPL、LGPL、MIT。

1、GPL

General Public License,簡稱 GPL。GPL 同其它的自由軟件許可證同樣,許可社會公衆享有:運行、複製軟件的自由,發行傳播軟件的自由,得到軟件源碼的自由,改進軟件並將本身做出的改進版本向社會發行傳播的自由。

GPL 協議最主要的幾個原則:

  1. 確保軟件自始至終都以開放源代碼形式發佈,保護開發成果不被竊取用做商業發售。任何一套軟件,只要其中使用了受 GPL 協議保護的第三方軟件的源程序,並向非開發人員發佈時,軟件自己也就自動成爲受 GPL 保護而且約束的實體。也就是說,此時它必須開放源代碼。
  2. GPL 大體就是一個左側版權(Copyleft,或譯爲「反版權」、「版權屬左」、「版權所無」、「版責」等)的體現。你能夠去掉全部原做的版權 信息,只要你保持開源,而且隨源代碼、二進制版附上 GPL 的許可證就行,讓後人能夠很明確地得知此軟件的受權信息。GPL 精髓就是,只要使軟件在完整開源 的狀況下,儘量使使用者獲得自由發揮的空間,使軟件獲得更快更好的發展。
  3. 不管軟件以何種形式發佈,都必須同時附上源代碼。例如在 Web 上提供下載,就必須在二進制版本(若是有的話)下載的同一個頁面,清楚地提供源代碼下載的連接。若是以光盤形式發佈,就必須同時附上源文件的光盤。
  4. 開發或維護遵循 GPL 協議開發的軟件的公司或我的,能夠對使用者收取必定的服務費用。但仍是一句老話——必須無償提供軟件的完整源代碼,不得將源代碼與服務作捆綁或任何變相捆綁銷售。

Linux 採用的就是 GPL。GPL 協議和 BSD、Apache Licence 等鼓勵代碼重用的許可很不同。GPL 的出發點是代碼的開源/無償使用和引用/修改/衍生代碼的開源/無償使用,但不容許修改後和衍生的代 碼作爲閉源的商業軟件發佈和銷售。這也就是爲何咱們能用免費的各類 linux,包括商業公司的 linux 和 linux 上各類各樣的由我的,組織,以及商業軟件公司開發的免費軟件了。

GPL 協議的主要內容是隻要在一個軟件中使用(」使用」指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的」傳染性」。GPL 協議的產品做爲一個單獨的產品使用沒有任何問題, 還能夠享受免費的優點。

因爲 GPL 嚴格要求使用了 GPL 類庫的軟件產品必須使用 GPL 協議,對於使用 GPL 協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/採用做爲類庫和二次開發的基礎。

2、LGPL

LGPL 是 GNU Lesser General Public License (GNU 寬通用公共許可證)的縮寫形式,舊稱GNU Library General Public License (GNU 庫通用公共許可證),後來改稱做Lesser GPL,即爲更寬鬆的 GPL,在寬鬆程度上與 BSD, Apache,XFree86 許可證類似。

GPL(General Public License)和 LGPL 是 GNU 的兩種 License。愈來愈多的自由軟件(Free Software)使用 GPL 做爲其受權聲明,若是對 GPL 一點都不瞭解,有可能在使用自由軟件時違反 GPL 的受權,恐怕會有被起訴的風險。因此任何公司在使用自由軟件以前應該保證在 LGPL 或其它 GPL 變種的受權下。

LGPL 是 GPL 的一個爲主要爲類庫使用設計的開源協議。和 GPL 要求任何使用/修改/衍生之 GPL 類庫的的軟件必須採用GPL協議不一樣。LGPL 容許商業軟件經過類庫引用(link)方式使用 LGPL 類庫而不須要開源商業軟件的代碼。這使得采用 LGPL 協議的開源代碼能夠被商業軟件做爲類庫引用併發布和銷售。可是若是修改 LGPL 協議的代碼或者衍生,則全部修改的代碼,涉及修改部分的額外代碼和衍生的代碼都必須採用 LGPL 協議。所以 LGPL 協議的開源 代碼很適合做爲第三方類庫被商業軟件引用,但不適合但願以 LGPL 協議代碼爲基礎,經過修改和衍生的方式作二次開發的商業軟件採用。

GPL/LGPL 都保障原做者的知識產權,避免有人利用開源代碼複製並開發相似的產品。

3、MIT

MIT 是和 BSD 同樣寬範的許可協議,做者只想保留版權,而無任何其它的限制。

也就是說,你必須在你的發行版裏包含原許可協議的聲明,不管你是以二進制發佈的仍是以源代碼發佈的。MIT協議又稱麻省理工學院許可證,最初由麻省理工學院開發。被受權人權利:

  1. 被受權人有權利使用、複製、修改、合併、出版發行、散佈、再受權及販售軟件及軟件的副本。
  2. 被受權人可根據程式的須要修改受權條款爲適當的內容。

被受權人義務:在軟件和軟件的全部副本中都必須包含版權聲明和許可聲明。

segmentfault 思否

相關文章
相關標籤/搜索