I notice that it mentions that Gramps Web is released under “AGPL 3.0 or later”. I’m not familiar with that one. What are the main provisions? Why was this license chosen?
“Both versions of the Affero GPL were designed to close a perceived application service provider (ASP) loophole in the ordinary GPL, where, by using but not distributing the software, the copyleft provisions are not triggered.”
Later in the same article:
"In the Free Software Foundation’s judgment, the added requirement in section 2(d) of Affero GPL v1 made it incompatible with the otherwise nearly identical GPLv2. That is to say, one cannot distribute a single work formed by combining components covered by each license.
By contrast, GPLv3 and AGPLv3 each include clauses (in section 13 of each license) that together achieve a form of mutual compatibility for the two licenses. These clauses explicitly allow the “conveying” of a work formed by linking code licensed under the one license against code licensed under the other license,[4] despite the licenses otherwise not allowing relicensing under the terms of each other.[5]"
Exactly. In principle, somebody could build a commercial hosting service on Gramps Web. There is nothing wrong with that, but AGPL makes sure that the commercial provider has to share the source code in case they make any modifications of it. So they cannot build a “pro version” and keep it closed source. This is why this license is used for other open source web apps like Nextcloud as well.
Actually, some of the files in Web API are licensed under GPL rather than AGPL because they contain code taken from Gramps.
Two questions:
1 - The link is unknown (404 error)
2 - I don’t want to use docker and needs to install it in my apache web site. Is there an easy way to do that ?
If you don’t want to use docker, you need a Linux server with Gramps and all other dependencies installed. The app is a WSGI Python app (based on flask) so you need to serve it with a WSGI server like gunicorn. You can use Apache as reverse proxy if you want. But docker is the simplest way.