Hi,
Is there a licensing guide available somewhere for the “Frappeverse” (Frappe Framework + Apps)?
In another topic @rmehta confirmed that the current strategy of Frappe is to release new apps under the AGPL license. I think this is a good strategy because it can ensure the long-term success of the Frappe Ecosystem.
However, there are some questions that I think have to be discussed:
-
Do Frappe Framework apps that are installed into the same Frappe site contaminate each other license-wise? This was not an issue before, because the GPL viral clause is only triggered upon software distribution, but with an AGPL app in the mix this could mean that a company has to release the source of its private apps (e.g. internal tools) to the users of e.g. the CRM or Ticketing app, because they are running in the same Python process.
-
If app X depends on the doctypes of an AGPL-ed app Y, then does that mean that app X must be placed under AGPL as well? My first instinct was “yes”, but what if that app only uses the doctypes with the REST API? In that case I don’t think it does.
-
What is the “public API” of a Frappe app, which can be used without triggering the viral nature of xGPL licenses?
These licensing issues are very much affected by the Frappe software architecture where multiple apps are running in a single process.
This is not a new situation in the software world, and there is already a well-known solution to it in the Java ecosystem called the “ClassPath-exception to the GPL”, which allows a GPL-ed library used in an app inside the same VM, without triggering the viral aspect of the GPL.
I think that there should be clear licensing guidelines defined for Frappe apps and if necessary, a “Frappe Exception” introduced to solve any licensing issues that are caused by the unique software architecture of the Frappe Framework.
What do you think?
Kind regards,
Gergely Kis
(CTO of Migeran)