技術編輯:徐九丨發自 思否辦公室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 更規範也更詳細:開發
其第三條「Grant of Patent License」明確規定了專利全部人經過代碼向使用者進行「永久性的,全球性的,非排他性的,免費的,免版稅的,不可撤銷的」受權。也就是說,專利全部人贊成永久受權,不可再起訴用戶侵權。
目前 OpenCV 核心團隊正在討論更換協議的詳細步驟。
開源軟件的許可證都是基於開源許可協議的,常見的開源許可協議除了咱們上文中提到的 BSD 和 Apache 以外,還有 GPL、LGPL、MIT。
General Public License,簡稱 GPL。GPL 同其它的自由軟件許可證同樣,許可社會公衆享有:運行、複製軟件的自由,發行傳播軟件的自由,得到軟件源碼的自由,改進軟件並將本身做出的改進版本向社會發行傳播的自由。
GPL 協議最主要的幾個原則:
Linux 採用的就是 GPL。GPL 協議和 BSD、Apache Licence 等鼓勵代碼重用的許可很不同。GPL 的出發點是代碼的開源/無償使用和引用/修改/衍生代碼的開源/無償使用,但不容許修改後和衍生的代 碼作爲閉源的商業軟件發佈和銷售。這也就是爲何咱們能用免費的各類 linux,包括商業公司的 linux 和 linux 上各類各樣的由我的,組織,以及商業軟件公司開發的免費軟件了。
GPL 協議的主要內容是隻要在一個軟件中使用(」使用」指類庫引用,修改後的代碼或者衍生代碼)GPL 協議的產品,則該軟件產品必須也採用GPL協議,既必須也是開源和免費。這就是所謂的」傳染性」。GPL 協議的產品做爲一個單獨的產品使用沒有任何問題, 還能夠享受免費的優點。
因爲 GPL 嚴格要求使用了 GPL 類庫的軟件產品必須使用 GPL 協議,對於使用 GPL 協議的開源代碼,商業軟件或者對代碼有保密要求的部門就不適合集成/採用做爲類庫和二次開發的基礎。
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 都保障原做者的知識產權,避免有人利用開源代碼複製並開發相似的產品。
MIT 是和 BSD 同樣寬範的許可協議,做者只想保留版權,而無任何其它的限制。
也就是說,你必須在你的發行版裏包含原許可協議的聲明,不管你是以二進制發佈的仍是以源代碼發佈的。MIT協議又稱麻省理工學院許可證,最初由麻省理工學院開發。被受權人權利:
被受權人義務:在軟件和軟件的全部副本中都必須包含版權聲明和許可聲明。