Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#121 closed task (released)

Move all code to AGPL

Reported by: ibboard Owned by:
Priority: blocker Milestone: WarFoundry 0.1
Component: General/Unknown Version:
Keywords: licensing agpl Cc:
Blocked By: Blocking:

Description (last modified by ibboard)

As per my forum topic, WarFoundry should be moved to the AGPL. The original intention of the LGPL was to not force people to use the GPL for front-ends, but freedom of code is more important than simple license choices and so the move should be made to AGPL licensing.

Change History (14)

comment:1 Changed 10 years ago by ibboard

Although the ticket mentions the GPL, as per the topic we may use the AGPL (GNU Affero GPL) since mod_mono and ASP.Net allow people to use the API as a back-end for web-based apps. The AGPL is basically just the GPL with an additional condition that making something publicly available as a networked service is the same as "conveying" (redistributing) source/binary builds.

This choice of GPL vs AGPL depends on the response to my email to the Free Software Foundation:

I've looked on the FAQs but they're quite scarce on questions about the
Affero license, presumably because it's generally similar to the
standard GPL except that use as a networked service is also covered as
"conveying". One question that I was hoping to get answered which seemed
to be missed was this:

If I apply the GNU Affero GPL to a library that can be used as the
back-end for a networked service then will the service have to be AGPLed
(and hence allow users access to the source code)? Or can the networked
service just be GPLed to be compatible with the AGPL library, thereby
not forcing changes in the library to be redistributed because it isn't
being "conveyed" directly?

I ask because my reading of the current wording and the FAQs implies
that there is still a loop-hole in the licensing as the GPL and AGPL
have exceptions that allow combined works (to allow AGPL services to use
GPLed libraries) but that allows an AGPL library to be linked to a GPLed
network service and so the service doesn't have to be redistributed and
the library itself isn't network-facing and so isn't directly conveyed.

Any clarification on the matter would be greatly appreciated.

comment:2 Changed 10 years ago by ibboard

Description: modified (diff)
Keywords: agpl added; gpl removed
Summary: Move all code to GPLMove all code to AGPL

The response from the FSF (who were prompt and useful) said:

 In section 13 of the GPL, it states "the
special requirements of the GNU Affero General Public License, section
13, concerning interaction through a network will apply to the
combination as such." That means that if you are making a work that
includes both AGPL and GPLv3 software, then the AGPL's special
requirement applies to the work as a whole. That means that you have a
combined work up and running on a server, you must offer the code as a
whole to users interacting with that combined work.

and

The AGPL's special requirement doesn't turn on whether the work is
'conveyed,' or whether network interaction is conveyance. Instead, the
license just makes special provisions for the situation where users can
interact with a modified version of the code over a network.

That means that an AGPLed library will still need to be redistributed if changes are made to it and it is used behind a web-service front-end. While it does force the service developer to use a GPL or AGPL license on their front-end and redistribute their source, I think that's a minor problem as it doesn't stop commercial derivatives, it just means that they have to be free.

Also, since the AGPL is effectively the GPL with a modification to its definition of "conveyance" so that networked services can't modify GPLed code without redistributing those changes, the compatibility matrix shows that the main IBBoard Utils can stay as LGPLed.

comment:3 Changed 10 years ago by ibboard

(In r185) Re #121: Move all code to AGPL

  • Move all WinForms code to the GNU Affero General Public License
  • fix some copyright dates

comment:4 Changed 10 years ago by ibboard

(In r186) Re #121: Move all code to AGPL

  • Add Affero license file and remove old LGPL stuff

comment:5 Changed 10 years ago by ibboard

(In r187) Re #121: Migrate to AGPL license

  • Update all API files to AGPL license
  • Include AGPL license and remove GPL/LGPL documents
  • Fix copyright dates where they're known

comment:6 Changed 10 years ago by ibboard

(In r188) Re #121: Migrate to AGPL license

  • Update all API Test files to AGPL license
  • Include AGPL license and remove GPL/LGPL documents
  • Fix copyright dates where they're known

comment:7 Changed 10 years ago by ibboard

(In r189) Re #121: Migrate to AGPL license

  • Update all Rollcall plugin files to AGPL license
  • Include AGPL license and remove GPL/LGPL documents
  • Fix copyright dates where they're known

comment:8 Changed 10 years ago by ibboard

(In r190) Re #121: Migrate to AGPL license

  • Update all GTK# GUI files to AGPL license
  • Include AGPL license and remove GPL/LGPL documents
  • Fix copyright dates where they're known

comment:9 Changed 10 years ago by ibboard

(In r191) Re #121: Migrate to AGPL

  • Fix date in AssemblyInfo for GTK# GUI

comment:10 Changed 10 years ago by ibboard

(In r192) Re #121: Migrate to AGPL license

  • Update all Army Builder API files to AGPL license
  • Include AGPL license and remove GPL/LGPL documents

comment:11 Changed 10 years ago by ibboard

Resolution: fixed
Status: newclosed

All libraries and front-ends now updated to the AGPL. Any use of the libraries as the back-end for a web service should now also trigger the "distribute your changes" aspect of open source licensing.

comment:12 Changed 10 years ago by ibboard

released: 1

Mark released changes as released

comment:13 Changed 10 years ago by ibboard

released: 1yes

Mark released fixes as released using radio values

comment:14 Changed 10 years ago by ibboard

Resolution: fixedreleased

Mark fix as released under a previous version

Note: See TracTickets for help on using tickets.