AGPL是GPL的一個補充, 在GPL的基礎上加了一些限制。
原有的GPL協定,由於現在網路服務公司興起(如:Google)產生了一定的漏洞,比如使用GPL的自由軟體,但是並不發布與網路之中,則可以自由的使用GPL協定卻不開源自己私有的解決方案。AGPL則增加了對此做法的約束。
AGPL這個協定的制定是為了避免一個GPL/LGPL協定中的漏洞,稱之為 Web Service Loophole。
這主要是由於 GPL是針對傳統的軟體分發模式的商業模式(以微軟為代表), 如果你使用的GPL的代碼作為
基礎完成你自己的軟體,如果你要分發你的軟體,你的軟體必須也是GPL的。隨著以Google為代表的軟體
作為服務的網際網路公司的興起,它們的“不分發軟體,為客戶提供網路服務”的商業模式就不受GPL協定的
約束,所以Google公司在構築他的搜尋引擎的時候可以隨心所欲的拿現有的GPL協定的開原始碼,無需開
源他的修改成果。AGPL協定在GPL協定的基礎上加上了這個約束。
基礎完成你自己的軟體,如果你要分發你的軟體,你的軟體必須也是GPL的。隨著以Google為代表的軟體
作為服務的網際網路公司的興起,它們的“不分發軟體,為客戶提供網路服務”的商業模式就不受GPL協定的
約束,所以Google公司在構築他的搜尋引擎的時候可以隨心所欲的拿現有的GPL協定的開原始碼,無需開
源他的修改成果。AGPL協定在GPL協定的基礎上加上了這個約束。
GPL的約束生效的前提是“發布”軟體,即使用了GPL成分的軟體通過網際網路或光碟release軟體,就必需明示地附上原始碼,並且原始碼和產品也受GPL保護。
這樣如果不“發布”就可以不受約束了。比如使用GPL組件編寫一個Web系統,不發布這個系統,但是用這個系統線上提供服務,同時不開源系統代碼。