• Solar Bear@slrpnk.net
      link
      fedilink
      English
      arrow-up
      15
      ·
      edit-2
      11 months ago

      The full details are complex but I’ll give you the basic gist. The original GPL licenses essentially say that if you give somebody the compiled binary, they are legally entitled to have the source code as well, along with the rights to modify and redistribute it so long as they too follow the same rules. It creates a system where code flows down freely like water.

      However, this doesn’t apply if you don’t give them the binary. For example, taking an open source GPL-licensed project and running it on a server instead. The GPL doesn’t apply, so you can modify it and do whatever, and you aren’t required to share the source code if other people access it because that’s not specified in the GPL.

      The AGPL was created to address this. It adds a stipulation that if you give people access to the software on a remote system, they are still entitled to the source code and all the same rights to modify and redistribute it. Code now flows freely again, and all is well.

      The only “issue” is that the GPL/AGPL are only one-way compatible with the Apache/MIT/BSD/etc licenses. These licenses put minimal requirements on code sharing, so it’s completely fine to add their code to GPL projects. But themselves, they aren’t up to GPL requirements, so GPL code can’t be added to Apache projects.

    • bamboo@lemm.ee
      link
      fedilink
      arrow-up
      14
      ·
      11 months ago

      It requires that you make available the full source code to anyone who you give binaries too (like the GPL), but also requires you make available that source to users of the software over a network. So, someone could not make a proprietary fork of AGPL software to sell exclusively as a service. In order to provide that service you have to also be willing to provide the source, including changes, which would allow users to then choose to run that service themselves instead of being forced to pay the provider.