Зачем нужна GPL Афферо
Стандартная общественная лицензия GNU Афферо — модифицированная версия обычной GNU GPL версии 3. В ней добавлено одно требование: если вы выполняете измененную программу на сервере и даете другим пользователям общаться на нем с этой программой, ваш сервер должен также позволять им получить исходный текст, соответствующий той модифицированной версии программы, которая выполняется на сервере.
Назначение GNU GPL Афферо — предотвратить возникновение проблемы, которая встает перед разработчиками тех свободных программ, которые часто применяются на серверах.
Предположим, что вы разрабатываете и выпускаете свободную программу под обычной GNU GPL. Если разработчик Р изменяет программу и выпускает ее, GPL требует от него, чтобы его версия тоже распространялась по GPL. Таким образом, если вы получаете копию его версии, то вы можете свободно включить некоторые или все его изменения в свою собственную версию.
Но предположим, что программа полезна главным образом на серверах. Когда Р изменяет программу, весьма вероятно, что он будет выполнять ее на своем собственном сервере и никогда не будет выпускать копий. Тогда вы никогда не получите копии исходного текста его версии, так что вам никогда не представится возможности включить его изменения в свою версию. Возможно, такой результат вам не понравится.
Применение GNU GPL Афферо позволяет избежать этого. Если Р выполняет свою версию на сервере, которым все пользуются, вы тоже можете воспользоваться им. Если он следовал требованию лицензии и предоставил пользователям сервера возможность получить исходный текст его версии, то вы можете это сделать, и тогда вы можете включить его изменения в свою версию. (Если он не следовал требованию лицензии, у вас есть юрист, которому вы можете на него пожаловаться.)
Как в обычной GNU GPL версии 3, так и в GNU GPL Афферо есть текст, позволяющий вам компоновать вместе модули под этими двумя лицензиями в одну программу.
GNU GPL не решает проблемы услуги-замены программ.
Услуга-замена программы подразумевает, что люди пользуются чьим-то чужим сервером для того, проводить свои собственные вычисления. Для этого требуется, чтобы они посылали свои данные на сервер, который выполняет для них обработку и посылает им назад результаты. Услуги-замены программ — это несправедливость, потому что пользователи не могут контролировать свои вычисления, когда они проводятся таким образом.
Если какая-то программа на таком сервере выпускается под GNU GPL Афферо, сервер должен предлагать пользователям соответствующий исходный текст этой программы. Это хорошо, но это не дает им контроля над вычислениями, которые проводятся на этом сервере. Этого также не достаточно, чтобы они могли знать, какие другие программы могут на этом сервере выполняться, инспектировать или изменять их данные.
Мы не знаем никакого разумного способа решить проблему услуг-замен программ с помощью условий лицензирования конкретных программ. Даже составить юридические условия, в которых услуги-замены программ отграничиваются от всего остального, было бы нелегко, и если бы у нас они были, мы не знаем, что можно было бы потребовать в лицензии для случая услуг-замен программ, чтобы исправить присущую им несправедливость. Таким образом, наше решение проблемы просто: отказываться от пользования службами, которые являются услугами-заменами программ.
Если программа предназначена специально и исключительно для услуги-замены программы, вы не должны ее писать. Но многие программы полезны для некоторого спектра услуг, некоторые из которых являются услугами-заменами программ, а некоторые не являются. Такие программы полезно писать и выпускать с тем, чтобы люди могли организовывать с их помощью службы, не являющиеся услугами-заменами программ; в этом случае программы хорошо выпускать под AGPL.