OpenCV 開源許可協議擬從BSD 變更為Apache 2
計算機視覺庫OpenCV 2020年技術委員會的會議記錄顯示,其中一項議程提到計劃將其開源許可協議從BSD變更為Apache 2.0。OpenCV開發團隊目前正在討論變更開源許可協議的詳細問題,預計在6月29日進行第一次評估。
BSD許可協議比較寬鬆,對於採用BSD的開源項目,開發者使可以自由使用、修改源碼,也可以將修改後的代碼作為開源或者專有軟件再發布,不過需要保留當前許可內容。根據維基百科的介紹,BSD不像GPL那樣具有“傳染性”。
然而BSD許可協議在某些情況下(例如涉及到專利)卻無法保護用戶。引用OpenCV團隊舉的一個例子來進行說明:
某名為“發明”的公司為某算法申請了專利,並發表了論文。因算法效果優秀,某CV愛好者依論文編寫了代碼,並以BSD協議將代碼提交到OpenCV。這個過程中沒人知道算法已申請專利,隱患便被埋下。
另一名為“發財”的公司將OpenCV中的這個算法應用到其產品中。依照現有BSD協議,此公司可以商業銷售產品,只需註明產品使用了OpenCV,而無需對用戶開源。
“發明”發現“發財”使用了其專利技術,遂起訴“發財”要求賠償和停止侵權,並順帶起訴或要求開源社區停止侵權。一旦發生這樣的案例,“發財”肯定要破財。開源軟件聲譽也會受到負面影響。
OpenCV團隊表示這樣的案例在其他開源社區中發生過,但沒在OpenCV 社區發生過,因為OpenCV 不接收有專利的算法。對於每個提交的新算法,社區會確認是否有專利。若有,只能拒絕接收。
以上做法雖然保障了安全性,但也讓一些優秀算法無法進入OpenCV。
與BSD 相比,Apache 2.0 是一個更規範和更詳細的開源許可協議,其第三條“Grant of Patent License”明確規定了專利所有人通過代碼向使用者進行“永久性的、全球性的、非排他性的、免費的、免版稅的、不可撤銷的”授權。也就是說,專利所有人同意永久授權,不可再起訴用戶侵權。