應用程序商店時下風靡一時,企業(yè)爭先恐后地爭取在競爭對手之前推出自己的軟件。為了加速軟件開發(fā),不少企業(yè)采用了開源組件。但是,企業(yè)需要確保所用的開源軟件符合應用程序商店和開源組件的有關規(guī)定,從一開始就要盡量避免風險。
GPLv2和App Store規(guī)定有沖突
OpenLogic公司最近調查了635個很受歡迎的移動應用的授權許可情況,結果發(fā)現(xiàn)有66個應用程序中使用了采用Apache或GPL/LGPL許可證的開源組件,而在66個應用程序中,超過70%的應用程序不符合開源許可證的規(guī)定。
OpenLogic的分析表明,企業(yè)在應用程序商品中發(fā)布基于開源組件開發(fā)的應用程序時并沒有充分理解授權許可的含義。這是很危險的:忽略軟件授權許可的規(guī)定意味著你的應用程序可能會被從應用程序商店刪除,這既有損于企業(yè)的競爭力,同時也會讓自己的用戶倍感沮喪。
另一個要考慮的問題是,最流行的應用程序商店Apple的App Store的服務條款與GPLv2的許可并不兼容。除非這些兼容問題解決,否則那些準備在蘋果的應用程序商店發(fā)布自己的移動應用的公司,如果要在應用中使用采用GPLv2的開源應用組件就應三思而后行,有必要咨詢法律顧問。
那么,到底有什么問題?GPLv2規(guī)定,如果軟件采用了GPLv2許可就不允許在原來的規(guī)定之外再增加進一步限制,GPLv2授權許可也不允許對如何使用加以限制。另一方面,蘋果公司的App Store服務條款規(guī)定,除了在規(guī)則中明確列出的那些使用方式外,用戶不得采用其他方式使用App Store中的應用。這樣,要符合蘋果公司的應用商店中的服務條款規(guī)定,就勢必要對應用程序的使用方式進行一定的限制,這就與GPLv2的授權許可協(xié)議不允許對代碼的使用進行限制產生了矛盾。正是由于這方面的原因,曾經非常流行的VLC媒體播放器被從App Store刪除了。
雖然蘋果沒有明說不準App Store中的應用程序采用GPLv2許可協(xié)議,但兩者的確存在沖突,事實上限制了GPLv2許可協(xié)議在其App Store中使用。而微軟則明確地提出,Windows Marketplace上不允許應用程序使用類似GPLv2這樣的Copyleft許可證。
與蘋果和微軟不同,Google并沒有限制在Android Market 上使用采用GPLv2許可的開源組件。然而,大多數(shù)企業(yè)更傾向于采用這樣一種方式來開發(fā)移動應用程序,即在一組核心組件集的基礎上針對各種不同的設備平臺進行裁剪,這種想法使得企業(yè)盡量避免使用那些不能跨平臺的軟件組件。雖然Android Market允許使用GPLv2的組件,而如果企業(yè)還希望這個應用程序將要發(fā)布到蘋果公司的App Store或Windows Marketplace上,那么采用使用GPLv2授權許可協(xié)議的組件就不是最好的選擇。
如何解決
鑒于目前大量的開源軟件采用的是GPLv2授權許可協(xié)議,而蘋果公司的應用程序商店App Store之間和Windows的應用程序商店Windows Marketplace的服務條款又與GPLv2協(xié)議之間存在不兼容,因此,解決它們之間的沖突已經成為一個亟待解決的問題。
對于那些非常想采用自由軟件的同時又希望借助蘋果公司應用程序商店的龐大用戶群作為發(fā)布渠道的開發(fā)人員而言,有專家提出雙軟件授權許可的方式:采用兩個許可協(xié)議,針對更廣泛的用戶采用GPL協(xié)議,而針對蘋果的App Store的可執(zhí)行版本以及衍生版采用另一個協(xié)議,以允許其他人使用和發(fā)布App Store上的二進制版本。
這個方法的關鍵是,需要那些采用GPLv2許可的開源項目同意采用一個新的適合App Store的授權許可,而一些崇尚自由、喜歡GPLv2的開發(fā)者很可能不會同意采用限制用戶自由的授權許可。此外,基于第三方開源軟件開發(fā)的開源項目如果不能找到替代軟件的話,就要獲得每個第三方開源項目的同意,允許采取雙許可方式。
值得一提的是,如果使用的是采用Apache 2.0授權許可協(xié)議的開源軟件就不會有與GPLv2相同的問題,它與蘋果的App Store的服務條款兼容,因而那些使用開源軟件的公司可以使用這個授權協(xié)議。
此外,如果公司在移動應用商店中發(fā)布的應用軟件的確存在不符合開源軟件授權許可的情況,也不要責備開源軟件開發(fā)商、承包商或第三方服務提供商在開源軟件方面使用不當。相反,確保你的企業(yè)制定了一個好的指導方針和審批程序,就像你在內部使用的開源項目一樣。另外,還可以采用一些專門的工具或者聘請一些專業(yè)廠商來幫助驗證企業(yè)的開源項目是否符合開源軟件的有關協(xié)議。為了避免不必要的風險,這些都是必要的。
GNU GPL
GNU GPL(GNU General Public License,通用公共許可證)是一個被廣泛使用的開源軟件許可證,最初由理查德#8226;斯托曼為GNU計劃而撰寫。到目前為止,GPL先后發(fā)布了3個版本。
GPLv1 發(fā)布于1989年1月。GPLv1規(guī)定,如果發(fā)布了可執(zhí)行的二進制代碼,就必須同時發(fā)布可讀的源代碼,并且不能添加任何限制性的條款。
GPLv2 在GPLv2中所做的最大的改動是規(guī)定,如果發(fā)布源于GPL的軟件時,只能以二進制代碼的形式發(fā)布軟件,那么他將根本無權發(fā)布該軟件。
GPLv3 發(fā)布于2007年6月29日。最重要的修改有四個:解決軟件專利問題;與其他許可證的兼容性;源代碼分割和組成的定義;解決數(shù)字版權管理 (DRM) 問題。