I’ve done a bit more digging on this and talked to our lawyer. A few notes for those interested:
First, I agree fully with Frappe Inc.'s decision to put new apps on the AGPL. The GPL just didn’t anticipate the rise of SaaS, and AGPL fixes that. This is the right license.
But, there is a question that requires clarification: on Frappe instances that use AGPL apps (Helpdesk, Builder, CRM, etc.), what are the licensing requirements of other apps on the same instance?
In broadstrokes the AGPL is clear.
- If a program uses AGPL code as a library, that program must also be AGPL.
- If a program interfaces with an AGPL program via an API, that program is not obligated to be AGPL.
The specifics, however, get messy. Here, the specific question is: Are Frappe apps programs or libraries?
In this thread, I believe Rushabh and Ankush are saying that Frappe Inc. regards apps to be libraries. I don’t agree with that interpretation, but also don’t have the legal or technical skills to argue the point with confidence. If true, however, the consequences are very significant.
If Frappe method calls like frappe.get_doc
are understood to spread AGPL, all code on the same instance would also need to be openly published under the AGPL. This would likely include any in-house custom apps (even if they don’t interact with AGPL code directly) and all server scripts.
This has huge implications that go far beyond proprietary “for profit” apps. It means that if you use an AGPL frappe app on your instance, every single person who has access to that system has a legal entitlement to all other code on that instance. Offering the code on demand isn’t enough, either. According to section 13 of the AGPL, all code must be “prominently offer[ed]”.
My lawyer has advised me that, if we want to use AGPL apps and don’t want to dispute Frappe Inc’s interpretations, we would need to:
- share all of our apps and server scripts on a public repo,
- make sure that they stay up-to-date, and
- prominently advertise them on our site.
He adds, this obligation applies even for private, in-house stuff that we have no intention of selling or distributing.
Is this the intended effect of the move to AGPL on new apps? If so, I hope people are aware. If not, some clarifications might be needed.